繁体   English   中英

将mysql命令行查询的结果放入bash脚本变量

[英]Put results of mysql command line query into bash script variable

我很难弄清楚如何将mysql查询的结果转换为bash shell脚本变量。

testDBName="some_database_name"
mysqlUser="root"
mysqlPassword="password"
mysqlCmd="/Applications/MAMP/Library/bin/mysql -u $mysqlUser -p $mysqlPassword -B -N"
cmdRes=$($mysqlCmd -e 'SHOW DATABASES LIKE "$testDBName"') #THIS IS THE TROUBLESOME LINE
if [ "$cmdRes" = "" ]; then
    echo "Table does not exist"
else
    echo "Table already exists"
fi

给我带来麻烦的那一行是“ cmdRes = ...”。 如果我只是将表名硬编码为可以正常工作的表名,如下所示:

cmdRes=$($mysqlCmd -e 'SHOW DATABASES LIKE "some_database_name"')

但是当我在一个东西中有一个$ variable时,我无法全神贯注于如何/为什么/怎么回事。 根据许多其他类似但不同的问题的答案,我尝试将字符串的不同部分放入不同的变量中以减少引号,我尝试了单引号,双引号,反斜杠,双单引号-双引号,花括号,运行eval等-但无济于事。

感谢您的任何帮助,您可以提供。

问题在于外壳程序不会在单引号(')内展开任何内容。

一种可能的解决方案:

cmdRes=$($mysqlCmd -e "SHOW DATABASES LIKE '$testDBName'")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM