mysql - bash 中的条件语句与 mysql 查询

标签 mysql bash variables

我正在尝试编写一个 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/

相关文章:

php - 跨表的唯一标识符

mysql - 主选择内的多个结果选择?

c++ - 获取文件句柄作为参数

bash - 我可以删除目录,然后在单个命令中创建目录吗?

bash - 在 Bash 中选择随机变量

java - 您的 SQL 语法有错误;检查与您的 MySQL 服务器对应的手册

php - 如何从有条件的表中选择所有数据?

linux - 在 tox 命令中使用通配符

variables - 立即变量赋值

variables - 获取 Sphinx 模板中的变量