シェルスクリプトのループでは、さまざまなサーバーに接続していくつかのコマンドを実行しています。ここでは例シェルスクリプトsshコマンドの終了ステータス
#!/bin/bash
FILENAME=$1
cat $FILENAME | while read HOST
do
0</dev/null ssh $HOST 'echo password| sudo -S
echo $HOST
echo $?
pwd
echo $?'
done
のために私は、「エコーの$ HOST」と「PWD」コマンドを実行していると私は経由終了ステータス取得しています「エコー$を?」。
私の質問は、リモートでいくつかの変数で実行したコマンドの終了ステータスを保存し、(コマンドが成功したかどうかに基づいて)ログをローカルファイルに書きたいということです。
どのようなヘルプとコードに感謝します。
終了ステータスを抽出できるように、各コマンドを実行するために個別にsshを実行する必要があると言っていますか?私は実際のコードで同じsshセッションで少なくとも5つのコマンドを実行しようとしています。 –
こんにちは、@ラルス。 'ssh localhost exit 10'が何を意味するのか説明できますか?これは、状態コードとして明示的に10を指定してssh localhostを実行することを意味しますか?ここで、exitはsshまたはlinuxコマンドの 'exit'のオプションですか? –
sshコマンドの基本的な構文は 'ssh'です。したがって、上記の答えでは、 'exit 10'はリモートシェルに渡されるコマンドです。 –
larsks