Отслеживание дочерних процессов последовательно

Я запускаю несколько команд на удаленном сервере по sshpass .

gnome-terminal --maximize --tab --title='aTask' -e "sshpass -p "afsd@#$5u89f" ssh root@192.168.0.125 'command1 && command2'" \ 

Итак, мой вопрос: что, если моей последней командой будет mvn clean install , то как я узнаю, что assembly прошла успешно?

В некотором смысле мне нужно отследить мой первый дочерний процесс, успешно ли он выполнил все команды, чтобы я мог последовательно запустить другой дочерний процесс.

    Если вы хотите запустить последовательно, то код выхода – это все, что вам нужно;

     command && echo "it worked" 

    или же

     command || echo "we are having a bad day" 

    Если gnome-терминал или sshpass не возвращает правильный код возврата, сообщите об ошибке и используйте альтернативу.

    Если вы хотите работать параллельно, используйте xargs -P или параллельно, где

    Статус выхода – это комбинация состояний выхода каждой команды, выполненной ИЛИ вместе. (Таким образом, если какая-либо одна команда выходит из ненулевого значения, параллель в целом будет выходить из ненулевого значения.)

    Если одна из ваших команд возвращается перед выполнением, используйте альтернативу или заставьте ваши команды принять asynchronous шаблон проектирования (заново изобрести колесо), например, добавив

      ; 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"