从 bash 选择远程数据库

从 bash 选择远程数据库

我对 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.

相关内容