2016-06-30 5 views

答えて

2

それは次のようになります。

VAR=$(ssh "$USERNAME"@"$HOST" -- remote_command -option) 

あなたがリモートでremote_commandを実行し、ローカル変数に格納します。それは上記のコマンドがすることです。あなたがリモートで複数行のコマンドを実行したい場合は

次ここにドキュメントを構築使用します。

VAR=$(ssh "$USERNAME"@"$HOST" <<EOF 
    remote_command -option 
    another_command 
    ... 
EOF 
) 

をところで、あなたは、リモートコマンドにローカル変数を補間する場合を除き、あなたはおそらく地元のシェルを無効にしますあなたはシェル変数を使用することができます上記のフォーム、リモートスクリプトのコマンド置換などで

VAR=$(ssh "$USERNAME"@"$HOST" <<'EOF' 
    remote_command -option 
    another_command 
    ... 
EOF 
) 

:開始デリミタ('に注意)として<<'EOF'を使用して、ここでdocに展開。

VAR=$(ssh "$USERNAME"@"$HOST" <<'EOF' 
    COUNT=$(remote_command -option) 
    another_command "${COUNT}" 
    if $((COUNT+1)) ; then 
     foo -bar 
    fi 
    ... and so on. all expansions happen remotely 
EOF 
) 
+0

は私がリモートマシン – chozhan

+0

のsshの$ USERNAMEする@ $のSUT << EOD COUNT =上で実行する必要が大きなロジックを記述するために計画しています最初と最後の行の間に、このフォーマットを使用していた。このような$(ls -la | wc -l) if [$ COUNT -eq 4]; remote_command2 fi EOD このようなことを計画しています。それが可能かどうかわからない場合 – chozhan

+0

その場合、 '<< 'EOF''で後者のバージョンを使用してください – hek2mgl

関連する問題