ローカルスクリプトでリモートで生成された変数を使用する

ローカルスクリプトでリモートで生成された変数を使用する

このスクリプトがあります。

#!/bin/bash
ssh server bash -c "'
if [[ "\$?" -ne "0" ]]; then
PRINT="N"
echo \${PRINT}
else
PRINT="Y"
echo \${PRINT}
fi
'"
echo $PRINT

ただし、ローカル $PRINT は空です。この変数をリモートからローカルに渡すには?

ありがとうございます!

ベストアンサー1

リモートサーバーから別のbashプロセスのシェルを削除し、コマンド全体の出力を変数(この場合はresp)として読み込みます。

#!/bin/bash
resp=$(ssh server '
if [[ "\$?" -ne "0" ]]; then
PRINT="N"
echo \${PRINT}
else
PRINT="Y"
echo \${PRINT}
fi')

echo $resp

おすすめ記事