在bash脚本中我有:
if/else if
当你运行它时,它显示为:
Check="grep -e '"'\(-S mount\)'"' /etc/audit/audit.rules"
set -x
现在它正是我想要的,但我想了解它。为什么还有2个额外的?
答案 0 :(得分:2)
set -x
的输出使用单引号。因此外部双引号被单引号替换,但是你不能在单引号字符串中转义单引号,所以当它替换它所需的内部双引号时,替换它们用'\''
替换它们结束单引号字符串,然后有一个转义的单引号,然后启动下一个单引号字符串。
另外,另外,不要将命令存储在字符串中。它只会让你以后痛苦。有关详情,请参阅Bash FAQ 050。