#!/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
success0을 보낼 때 종료 상태 로 예상 되었지만 여전히을 받고 failure있습니다.
또한 wait300 초 동안 기다리지 않습니다. 대신 즉시 메시지가 나타납니다. 나는 나의 대본에서 $!직계의 자식 이라고 가정한다 $$. 그렇지 않습니까?
대기의 종료 상태를 다음과 같이 캡처 할 수 exit_status=$(wait $!)있습니까?
if ! ((exit_status));then
echo sucess
else
failure
fi