我正在尝试编写一个 bash 脚本来执行 mysql 查询,如果结果数为 1,则执行某些操作。但我无法让它工作。
#!/bin/sh
file=`mysql -uroot -proot -e "select count(*) from MyTable.files where strFilename='file.txt'"`
if [[ $file == "count(*) 1" ]];
then
echo $file
else
echo $file
echo "no"
fi
我验证了查询是否有效。我不断收到返回
count(*) 1
no
我不确定为什么,但我认为这可能与变量 $file 的类型有关。有什么想法吗?
最佳答案
为了防止在脚本中暴露数据库凭据,您可以将它们存储在位于主目录中的本地 .my.cnf 文件中。 这项技术将允许您的脚本无需修改即可在任何服务器上运行。
<小时/>路径:/home/youruser/.my.cnf 内容:
[client]
user="root"
password="root"
host="localhost"
[mysql]
database="MyTable"
因此,Renato 代码可以通过以下方式重写:
#!/bin/sh
file=`mysql -e "select count(*) as count from files where strFilename='file.txt'" | cut -d \t -f 2`
if [ $file == "1" ];
then
echo $file
else
echo $file
echo "no"
fi
关于mysql - bash 中的条件语句与 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17204343/