mysql - shell 脚本 if 条件

标签 mysql linux shell

我正在编写一个运行以下命令的脚本

mysql -u root -e "show databases"

这将显示数据库列表。

如果这个表不包含名为“userdb”的数据库,它应该执行以下操作-

if [ ... ]; then
 echo "error"
 exit
fi

我应该在 if [ ... ] 条件中写什么?

最佳答案

如果列出了表名,您可以使用 grep 检查。 grep -q 不会向控制台打印任何内容,但会根据结果设置退出状态(退出状态将由 if 检查)。

if ! mysql -u root -e 'show databases' | grep -q '^userdb$' ; then
    echo error
    exit
fi

关于正则表达式:'^' 匹配行首,'$' 匹配行尾(避免误报数据库名包含 userdb,例如 userdb2)

关于mysql - shell 脚本 if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13737687/

相关文章:

php - mysql 如何缩短计数 5 个结果

MySQL 错误代码 1265 : what's wrong with my csv data?

mysql - 仅在存在时插入(具有相同的 ID)

python - 调用 glfw.init() 后,BadWindow 在 tkinter 中崩溃

regex - 使用 bash 删除字符串的一部分

bash - BASH 中的 `trap cleanup INT EXIT` 问题

mysql - 通过 visual studios 2012 MySql 的成员(member)资格和滚动

C: 由 popen() 函数执行的 Linux 命令不显示结果

python - 如何使用 bash 脚本结束 django 进程?

windows - 如何通过 START 命令运行多个命令