我的 shell 脚本通过 SSH 运行:
ssh -i mycert.pem [email protected] <<SSHBLOCK
pm2 logs --lines 100 &
pid=$!
sleep 3
kill $pid
SSHBLOCK
该脚本在本地服务器上按预期工作(未包装在 sshblock 中)。但是当我需要获取远程服务器上的日志时,$pid 就是空白的。为什么是$!在上面的 SSHBLOCK 中使用时为空?
答案1
您必须使用引号 '' 或转义 \ 来远程扩展变量。因此,使用此处文档<<'SSHBLOCK'
或<<\SSHBLOCK