我正在编写一个运行以下命令的脚本
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/