我有一些非常长且复杂的命令,包含两种类型的引号:“和',例如:
cd folder && command --hel="p_me:'please' anyone:'here?'" ; command2 --end='my:"trouble"'
我想把它放入 echo 命令中。但这并不容易,我必须将它插入另一个引号中,并转义命令中的一些引号。这通常应该没问题,但不幸的是,这次我无法更改命令本身(也无法转义其中的任何引号)。
如何回显包含两种引号的命令而不进行修改?如何在回显过程中转义引号?
答案1
您可以使用 heredoc:
xargs -d $'\n' echo <<'EOF'
cd folder && command --hel="p_me:'please' anyone:'here?'" ; command2 --end='my:"trouble"'
EOF
例子:
$ xargs -d $'\n' echo <<'EOF'
cd folder && command --hel="p_me:'please' anyone:'here?'" ; command2 --end='my:"trouble"'
EOF
cd folder && command --hel="p_me:'please' anyone:'here?'" ; command2 --end='my:"trouble"'
我不知道jsub
是什么,也找不到14.04 的存储库,但除非它运行 shell 或可以解释 shell 语法,否则我认为这不会像您想象的那样工作。
xargs -d $'\n' jsub -N cron-89 -once -quiet <<'EOF'
cd folder && command --hel="p_me:'please' anyone:'here?'" ; command2 --end='my:"trouble"'
EOF