我在这里遇到一个简单脚本的问题。只是找不到解决我问题的文档帮助。
这是我的剧本。
#!/bin/bash
$VCOPS_BASE/cassandra/apache-cassandra-2.1.8/bin/cqlsh --ssl --cqlshrc $VCOPS_BASE/user/conf/cassandra/cqlshrc
-e "cql_statement;"
为了简单起见,我省略了cql,但每次从命令行运行我的文件时,我只需输入cql shell。
- 执行和echo也不起作用,我真的不确定为什么我需要将cql语句保存到另一个文件。
任何帮助都将不胜感激。
答案 0 :(得分:2)
那是因为-e
是一个cqlsh选项,而不是一个独立的bash命令。因此,它需要与您的cqlsh
命令位于相同的行。
#!/bin/bash
$VCOPS_BASE/cassandra/apache-cassandra-2.1.8/bin/cqlsh --ssl --cqlshrc $VCOPS_BASE/user/conf/cassandra/cqlshrc -e "cql_statement;"
我用更简单的版本测试了这个:
aploetz@dockingBay94:~/scripts$ cat getEmail.sh
#!/bin/bash
cqlsh -u cassandra -p cassandra -e "SELECT * FROm stackoverflow.users_by_email WHERe email='mreynolds@serenity.com';"
aploetz@dockingBay94:~/scripts$ ./getEmail.sh
email | id | username
------------------------+--------------------------------------+----------
mreynolds@serenity.com | d8e57eb4-c837-4bd7-9fd7-855497861faf | Mal
(1 rows)
aploetz@dockingBay94:~/scripts$