1
shell命令cmd可能包含空格以及单引号和双引号。如何在命令参数中将引号转义为sh -c?
如何逃避这些引号命令正确地传递给了POSIX shell:
>dash -c '
CMD '
另一个问题指出作为DUP,询问双引号。其中一个答案可能会起作用 - 拆分命令并使用连接的引号。例如,如果CMD是
cd "dir"; ls 'foobar'
那么我们就变换成
>dash -c 'cd "dir"; ls '"'foobar'"
这是凌乱...有没有更简单的方法?
添加:它似乎没有人理解我...我只是想要一个通用的过程,一个算法,接受输入,一个字符串(完全精确的,由可打印的ASCII字符从0到127 ASCII表),并输出第二个字符串。要求是,如果第一个字符串这样
POSIX_shell>string1
执行的结果是一样的
>POSIX_shell -c string2
难道我更清楚现在,请让我知道。
的评论:“如果有可能避免这种”让我想起了经典笑话来逃脱“客户电话支持工程师和说,当我这样做时,我遇到了一个错误,支持工程师说,不要那么做!“ –
我不明白你的答案。你确定你明白我的问题吗? –
你可以在单引号内回显'''',除了它是一个fib - 最终结果是单引号,但在''''中,第一个单引号终止单引号字符串,'\''嵌入单引号,最后'''恢复单引号字符串。 –