我嘗試下面的命令,並得到了一個錯誤:挑戰:爲逃避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