#!/bin/bash
function back()
{
sleep $1
exit $2
}
back $1 $2 &
b=$!
if `wait $!`;then
echo success
else
echo failure
fi
bash-3.00# ./back 300 0
failure
bash-3.00# ./back 300 1
failure
success
0을 보낼 때 종료 상태 로 예상 되었지만 여전히을 받고 failure
있습니다.
또한 wait
300 초 동안 기다리지 않습니다. 대신 즉시 메시지가 나타납니다. 나는 나의 대본에서 $!
직계의 자식 이라고 가정한다 $$
. 그렇지 않습니까?
대기의 종료 상태를 다음과 같이 캡처 할 수 exit_status=$(wait $!)
있습니까?
if ! ((exit_status));then
echo sucess
else
failure
fi