変数のコマンドから標準出力を取得する方法

変数のコマンドから標準出力を取得する方法

sshの標準出力が何であるかを知りたい場合は、次のようにします。

ssh  $linux_server "cat /proc/uptime"

[[ $? -eq 0 ]] && ssh is ok

しかし、次の場合にssh標準出力をどのように知ることができますか?

 UPTIME=`    ssh $linux_server "cat /proc/uptime"  `

ベストアンサー1

ほとんどのシェル(したがって最も移植性の高い)でこれを行う標準的な方法はバックティック( `)を使用することであり、sshを実行する必要があります。

UPTIME="`ssh $linux_server cat /proc/uptime`"

あるいは、$()を使用してbash(およびバックティックほど普遍的ではありませんが、他のシェル)に固有のものを作成することもできます。

UPTIME="$(ssh $linux_server cat /proc/uptime$)"

バックティックは同じものを使用してコマンドを区別するため、入れ子にすることはできません。これがbash構造の利点の1つです。さらに、実行効率をわずかに向上させるためにサブシェルを分岐する必要はありません。

詳しくはbashのマニュアルページをご覧ください。

おすすめ記事