从bash中select远程数据库

我是一种新的bash / shell脚本,我试图远程从MySQL数据库中select,并检查是否存在logging或不。 基于回应会做一些东西。

这是我作为一个命令

mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -e "select count(column) from TABLE where column=1234;" 

当我在terminal直接运行这个命令时,我得到了正确的回应。 所以我试图把它放在这样的脚本

 #!/bin/bash count=mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -e "select count(column) from TABLE where column=1234;" if [ $count -gt 0 ] then echo " greater that 0 " else echo " lower than 0 " fi 

当我执行上面的脚本输出是

$ ./check.sh

./check.sh:第3行:-u:找不到命令

./check.sh:第5行:[:-gt:一元运算符预期

低于0

欣赏任何帮助。 谢谢。

你需要一个子shell。 尝试这个:

 count=$(mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -sse "select count(column) from TABLE where column=1234;") if [ $count -gt 0 ] then echo " greater that 0 " else echo " lower than 0 " fi 

还要注意-s选项:

 --silent, -s Silent mode. Produce less output. This option can be given multiple times to produce less and less output.