2
SSH heredoc またはコマンド内でローカル変数とリモート変数の両方を使用できますか?SSH - heredocまたはコマンド内でローカル変数とリモート変数の両方を使用できない
以下はヒアドキュメントを使用してSSHスクリプトの一例である(実際のスクリプトはより複雑である):
FILE_NAMEは、リモートサーバ上で使用されるように、ローカルサーバ上に設定されています。
REMOTE_PIDは、ローカルサーバーで使用するリモートサーバーで実行する場合に設定されます。
スクリプトではFILE_NAMEが認識されます。 REMOTE_PIDは設定されていません。
EOFが 'EOF'に変更され、REMOTE_PIDが設定されている場合、FILE_NAMEは変更されていません。 (私は なぜこれが理解できません)
REMOTE_PIDとFILE_NAMEの両方を認識できる方法はありますか?
バージョン2のbashが使用されています。デフォルトのリモートログインはcshell、ローカルスクリプトはbashになります。
あなたは変数を展開したくない場合は$
記号をエスケープする必要が
FILE_NAME=/example/pdi.dat
ssh [email protected] bash << EOF
# run script with output...
REMOTE_PID=$(cat $FILE_NAME)
echo $REMOTE_PID
EOF
echo $REMOTE_PID
私は差があることだと思います'Y'も' 'X''に変更した方が明確です。 – 123
@ 123良いアイデア、ありがとう –
エコー$ Xが2番目のEOFの後に実行された場合、何が表示されるのですか? heredoc内で変数を設定して外部で使用することは可能ですか? –