我对 bash/shell 脚本还不太熟悉,我正在尝试从 mysql 数据库中远程选择并检查记录是否存在。根据响应将执行一些操作。
这就是我的命令
mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -e "select count(column) from TABLE where column=1234;"
当我在终端中直接运行此命令时,我得到了正确的响应。所以我尝试将其放入脚本中,如下所示
#!/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
非常感谢您的帮助。谢谢。
答案1
你需要一个子 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.