Mysql Shell脚本if条件
我正在编写一个运行以下命令的脚本Mysql Shell脚本if条件,mysql,linux,shell,Mysql,Linux,Shell,我正在编写一个运行以下命令的脚本 mysql -u root -e "show databases" 这将显示一个数据库列表 如果此表不包含名为“userdb”的数据库,则应执行以下操作- if [ ... ]; then echo "error" exit fi 如果[…]条件满足,我应该在中写什么?试试这个: usedb=DBname check=`mysql -u root -e "show databases" | grep $userdb` if [ "$check"
mysql -u root -e "show databases"
这将显示一个数据库列表
如果此表不包含名为“userdb”的数据库,则应执行以下操作-
if [ ... ]; then
echo "error"
exit
fi
如果[…]条件满足,我应该在中写什么?试试这个:
usedb=DBname
check=`mysql -u root -e "show databases" | grep $userdb`
if [ "$check" != "$userdb" ]; then
echo "error"
exit
fi
但如果数据库名为的行包含任何其他信息,则会出现错误。
尝试使用regexp
解决此问题。如果表名已列出,则可以使用grep
进行检查grep-q
不会在控制台上打印任何内容,但会根据结果设置退出状态(如果
,退出状态将由检查)
关于正则表达式:“^
”匹配行首,“$
”匹配行尾(以避免包含userdb
,例如userdb2
)的数据库名称出现误报)或仅mysql-u root-e“show databases”| grep-q“^userdb$”&echo error&&exit
if ! mysql -u root -e 'show databases' | grep -q '^userdb$' ; then
echo error
exit
fi