Bash
如何在SSH中獲取最後一個後台程序的pid
我的 shell 腳本以這種方式通過 SSH 執行:
ssh -i mycert.pem testuser@myserver.com <<SSHBLOCK pm2 logs --lines 100 & pid=$! sleep 3 kill $pid SSHBLOCK
該腳本在本地伺服器上按預期工作(未包裝在 sshblock 中)。但是當我需要在遠端伺服器上獲取日誌時, $ pid is just blank. Why is $ !在上面的 SSHBLOCK 中使用時為空?
您必須使用引號 ’’ 或轉義 \ 來遠端擴展變數。因此,請使用此處的文件
<<'SSHBLOCK'
或<<\SSHBLOCK