슬레이브에서 실행되는 스크립트에서 값을 반환합니다.

슬레이브에서 실행되는 스크립트에서 값을 반환합니다.

내 로컬 컴퓨터에 스크립트가 있습니다. 스크립트에서 SSH를 통해 슬레이브에 대한 연결을 설정하고 슬레이브에서 빌드 스크립트를 실행합니다.

ssh $user@$slave_ip bash $dest_root/$dest_dir/slave_run

상위 스크립트 변수의slave_run 스크립트에서 반환된 종료 코드를 캡처하는 방법이 있습니까?

답변1

귀하의 명령(큰따옴표 추가):

ssh "$user@$slave_ip" bash "$dest_root/$dest_dir/slave_run"

$?종료 코드는 명령을 실행한 후 캡처됩니다.

예:

$ ssh someserver sh -c 'false'
$ echo $?
1

캡처하려면:

$ ssh someserver somecommand
$ code=$?

또는 서버에서 명령을 받아 종료 코드를 출력하고 이를 문자열로 캡처합니다.

$ code=$( ssh server sh -c "somecommand; echo \$?" )

귀하의 경우:

$ code=$( ssh "$user@$slave_ip" sh -c "$dest_root/$dest_dir/slave_run; echo \$?" )

명령이 큰따옴표 안에 있고 클라이언트 측 셸이 아닌 서버 측 셸에서 평가되기를 원하기 때문에 $of를 이스케이프해야 합니다 .$?$?

답변2

종료 코드를 확인하려면 특수 변수 "$?"를 확인해야 합니다. 이 변수는 마지막 명령 실행의 종료 코드를 알려줍니다.

ssh $user@$slave_ip 'bash $dest_root/$dest_dir/slave_run ; echo $?'

관련 정보