我们可以通过 ssh 运行命令:
$ ssh user@host bash -c "'echo x '"
x
然而我发现我无法逃脱'
:
$ ssh user@host bash -c "'echo \''"
bash: -c: line 0: unexpected EOF while looking for matching `''
bash: -c: line 1: syntax error: unexpected end of file
我也尝试过,\\
但没有任何作用。\\\
\\\\
这个想法是传递类似的东西ls -1tr /var/log/ | head -10 | xargs -d '\n' -I {} echo {}
。但\'
不起作用,所以我不知道如何通过'\n'
。我怎样才能实现这个目标?
答案1
当你发现自己在引用地狱时,heredocs 通常会有所帮助
ssh user@host bash <<END
echo \'
END
话虽这么说,单引号字符串无法包含单引号
答案2
GNU Parallel 在内部多次引用字符串。您可以将引用引擎用于:
$ parallel --shellquote
write your string here, which may contain ' or " or \n
ctrl-D
如果您需要引用两次:
parallel --shellquote --shellquote
为了娱乐:
echo "'" | parallel --shellquote --shellquote --shellquote --shellquote --shellquote --shellquote