Bash

如何在SSH中獲取最後一個後台程序的pid

  • July 10, 2017

我的 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

引用自:https://unix.stackexchange.com/questions/377419