Bashスクリプトの変数を介してCassandraコマンドラインに対してクエリを実行しようとしましたが、失敗しました。
スクリプト:
[ec2-user@ip-192-2-2-7 tmp]$ cat a.sh
#!/bin/bash
IP=192.2.2.7
EQ='SELECT id,name,title FROM student where id=100'
echo $IP
echo $EQ
xyz=`echo \"$EQ\"`
echo "======"
echo $xyz
/usr/bin/cqlsh $IP -e $xyz
[ec2-user@ip-192-2-2-7 tmp]$
実装する
[ec2-user@ip-192-2-2-7 tmp]$ sh a.sh
192.2.2.7
SELECT id,name,title FROM student where id=100
======
"SELECT id,name,title FROM student where id=100"
Usage: cqlsh.py [options] [host [port]]
cqlsh.py: error: 'filename,' is not a valid port number.
[ec2-user@ip-192-2-2-7 tmp]$
/usr/bin/cqlsh $IP -e $xyz を実行したときに変数を呼び出すことができない理由を誰かが提案できますか?
次のコマンドを手動で実行すると正常に動作しますが、スクリプトの変数では機能しません。
/usr/bin/cqlsh 192.2.2.7 -e "id = 100の学生のID、名前、および役職を選択してください。"