SSHを使用してリモートノードでコマンドを実行するスクリプトがあります。リモートノードはデバイスなので変更できず、お勧めできません。これで、次のスクリプトがあります。
ssh REMOTE-NODE -l login "ls" > output 2>&1
status=$?
これは$status
sshコマンドの状態を持ちます。$?
リモートコマンド(この場合はlsですが呼び出されたコマンドの場合)の状態はどのようにわかりますか?状態を返すことができるリモートノードに中間スクリプトを作成することはできません。
ベストアンサー1
ssh
いつものように商品を返品しませんか?
終了状態
ssh はリモートコマンドの終了状態で終了するか、エラーが発生した場合は 255 で終了します。
$ ssh user@localhost 'exit 123' ; echo $?
user@localhost's password:
123
ただし、アノテーションで@thrigが暗示したように、sshクライアントがシグナルのためにシャットダウンした場合、$?
リモートコマンドのシャットダウンコードではない場合でも、255の代わりに一般的な128+シグナル番号が表示されることがあります。代わりに、クイックテストでは、信号が原因でリモートコマンドが終了すると、ssh
255が返されるように見えます。