从bash中选择远程数据库

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

感谢您对此的任何帮助。谢谢。

gbo*_*olo 5

你需要一个子外壳。尝试这个:

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)