Cassandra CQL Shell脚本

4

我在这里遇到了一个简单脚本的问题。只是找不到文档帮助来解决我的问题。

这是我的脚本。

#!/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。
--execute和echo也无法工作,我真的不确定为什么需要将cql语句保存到另一个文件中。
任何帮助将不胜感激。
1个回答

4

这是因为-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$

没错,就是这样。谢谢你帮助一个简单的人。 - PA_Commons
@PA_Commons 没关系,我很高兴能够帮助! - Aaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接