Shell
在遠端主機上執行命令失敗
我正在嘗試在遠端主機上執行一些命令,如下所示:
ssh -t -t -l user 172.20.20.20 <<EOF pid=$(ps -ef | grep [a]pp-management | awk '{print $2}') && kill -9 $pid && rm -rf CI/* EOF
發生的情況是我仍然在遠端伺服器上登錄並且沒有執行 kill :
user@ubuntu:~$ pid= && kill -9 && rm -rf CI/* kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
都沒有
rm
被執行,我做錯了什麼?我看到沒有任何東西可以傳遞給 kill -9 命令,這是為什麼呢?
$
在生成作為輸入傳遞給ssh
命令的字元串之前,heredoc 中由符號引入的擴展在本地進行評估。為避免這種情況,請轉義 heredoc 中的命令,例如用引號引起來
EOF
ssh ... <<"EOF"