VLS*_*VLS 1 mysql shell bash shell-scripting
我是 bash/shell 脚本方面的新手,我正在尝试从 mysql 数据库中远程选择并检查记录是否存在。基于响应会做一些事情。
这是我的命令
mysql -u mysql -pMysql123 -h xxx.xxx.xxx.xxx MYDBNAME -e "select count(column) from TABLE where column=1234;"
Run Code Online (Sandbox Code Playgroud)
当我直接在终端中运行此命令时,我得到了正确的响应。所以我试图把它放在这样的脚本中
#!/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
Run Code Online (Sandbox Code Playgroud)
当我执行上面的脚本时,输出是
$ ./check.sh
./check.sh: 第 3 行: -u: 命令未找到
./check.sh: 第 5 行: [: -gt: 预期的一元运算符
低于 0
感谢您对此的任何帮助。谢谢。
你需要一个子外壳。尝试这个:
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
Run Code Online (Sandbox Code Playgroud)
还要注意这个-s
选项:
--silent, -s
Silent mode. Produce less output. This option can be given multiple times to produce less and less output.
Run Code Online (Sandbox Code Playgroud)