メインスクリプトから既存の変数を呼び出す必要があるheredocがあります。とは、後で使用する独自の変数を設定しています。このようなもの:heredocセクションで変数を設定および展開する方法
count=0
ssh $other_host <<ENDSSH
if [[ "${count}" == "0" ]]; then
output="string1"
else
output="string2"
fi
echo output
ENDSSH
「出力」が何も設定されていないため、これは機能しません。
私はこの質問からソリューションを使用してみました:
count=0
ssh $other_host << \ENDSSH
if [[ "${count}" == "0" ]]; then
output="string1"
else
output="string2"
fi
echo output
ENDSSH
それはどちらか動作しませんでした。 $ countは展開されていないので、$ outputは "string2"に設定されています。
親スクリプトの変数を展開するheredocを使用するには、とは独自の変数を設定しますか?
期待どおりに動作しています。 heredoc内部のコードはリモートホスト上で実行され、 'count = 0'初期化は表示されません。 – codeforester
変数(とその他のもの)をheredocの実行に渡す方法はありますか? – user2824889
"heredocの実行"はありません。 heredocは文字列を定義します。文字列はsshに渡され、シェルによって評価されます。 –