【发布时间】:2018-08-19 14:03:53
【问题描述】:
这个例子效果很好:
if [[ "$(mysql -sse 'USE my_bd; SELECT COUNT(*) FROM my_table" -gt "0" ]];
then echo 1;
else echo 0;
fi
但我需要在 mysql -e 'query...' 内添加需要引号 ' 的 WHERE 子句
所以我需要像这样更改引号顺序并用双引号将mysql -e "query..." 括起来
我试图用\"逃跑
if [[ "$(mysql -sse \"USE my_bd; SELECT COUNT(*) FROM my_table WHERE my_column = 'something'\"" -gt "0" ]];
then echo 1;
else echo 0;
fi
但这引发了 bash 错误
-bash:命令替换:第 21 行:意外标记 `(' 附近的语法错误
我看到了关于 How to escape double quotes in bash? 的其他问题,但答案对我来说不起作用
【问题讨论】:
-
我没有看到
$(mysql关闭 -
如果我将
"$(mysql更改为$(mysql运行良好,您就有理由。 Bfff 我尝试了很多组合,但不是那个。谢谢下面的答案也有效。我需要更多的咖啡:) -
由于两边的值都是数字,没有
" "也可以,但是如果期望值是字符串就不行了
标签: bash