我尝试下面的命令,并得到了一个错误:挑战:为逃避SSH大括号命令
$ ssh -q rmthost "bash -c 'cat /var/tmp/5|awk '''{print \$1}''' >/var/tmp/redirect 2>&1'"
Missing }
(注:“庆典-c'是必要的,因为对rmthost帐户的登录shell是csh )
禁用括号扩展不起作用:
$ set +B
我也试过:
$ ssh -q rmthost "bash -c 'cat /var/tmp/5|awk ''''{'print \$1'}''''>/var/tmp/redirect 2>&1'"
awk: syntax error near line 1
awk: illegal statement near line 1
中级脚本文件会做,但我更喜欢单行程序,因为我有10多个这样的类似命令需要在不同的时间点运行。
有没有办法在这种情况下逃避大括号?
谢谢。
单引号会阻止变量扩展。很可能你根本不需要任何转义 – user3159253
bash -c字符串已经有单引号,所以awk命令中的单引号也需要转义。这是棘手的部分。 – AlexL