リモートサーバーで複数のコマンドを実行しています。SSHパス。
gnome-terminal --maximize
--tab --title='aTask' -e "sshpass -p "afsd@#$5u89f" ssh [email protected] 'command1 && command2'" \
だから私の質問は、最後のコマンドがmvn clean install
ビルドが成功したかどうかをどうやって知ることができるかということです。
ある時点で、他のサブプロセスを順番に開始できるように、最初のサブプロセスがすべてのコマンドを正常に完了したかどうかを追跡する必要があります。
答え1
順次実行するには終了コードで十分です。
command && echo "it worked"
または
command || echo "we are having a bad day"
gnome-terminalまたはsshpassが正しい戻りコードファイルを返さない場合は、エラーを報告して代替を使用してください。
終了状態は、実行された各コマンドの終了状態をORに組み合わせたものです。 (したがって、1つのコマンドがゼロ以外の状態で終了すると、並列性全体がゼロ以外の状態で終了します.)
コマンドのいずれかが実行される前に返された場合は、代替を使用するか、コマンドを追加して非同期デザインパターンを採用します(ホイールの再発明)。
; echo $(date) $? > task1.r
次に、すべての操作が完了するまで待ちます。
while [ $(cat task*.r 2>/dev/null | wc -l) -lt $TASK_COUNT ] ; do
sleep 1
done
grep -P " [^0]$" task*.r && echo "we are having a bad day"