私のシェルスクリプトはSSHを介して実行されます。
ssh -i mycert.pem [email protected] <<SSHBLOCK
pm2 logs --lines 100 &
pid=$!
sleep 3
kill $pid
SSHBLOCK
スクリプトはローカルサーバーで期待どおりに動作します(sshblockにラップされていません)。ただし、リモートサーバーからログを取得する必要がある場合、$ pidは空です。なぜ$!上記のSSHBLOCKで使用すると空ですか?
ベストアンサー1
変数をリモートで拡張するには、引用符 ''またはエスケープ\を使用する必要があります。したがって、ここで文書を使用する<<'SSHBLOCK'
か、<<\SSHBLOCK