我是一种新的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.