我意识到很久以前就已经回答了这个问题,但这样做对我来说似乎更清晰:
MysqL -u root -e 'use mydbname'
如果数据库存在,则不会产生输出并退出,返回码== 0.
如果数据库不存在,这将在stderr上产生一条错误消息,并以returncode == 1退出.所以你会做这样的事情:
if ! MysqL -u root -e 'use mydbname'; then
...do stuff to create database...
fi
这与shell脚本运行良好,不需要对输出进行任何处理,也不依赖于本地文件系统访问.