원격 서버에서 여러 명령을 실행하고 있습니다.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로 조합한 것입니다. (따라서 하나의 명령이 0이 아닌 상태로 종료되면 병렬성 전체가 0이 아닌 상태로 종료됩니다.)
명령 중 하나가 실행되기 전에 반환되면 대안을 사용하거나 명령을 추가하여 비동기 디자인 패턴을 채택하도록 합니다(휠을 재발명).
; 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"