#!/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
Eu esperava o success
status de saída quando envio 0, mas ainda estou recebendo failure
.
Além disso, wait
não aguarde 300 segundos. Em vez disso, recebo a mensagem imediatamente. Suponho que $!
seja o filho imediato de $$
meu script. Não é?
É possível capturar o status de saída de espera como exit_status=$(wait $!)
?
if ! ((exit_status));then
echo sucess
else
failure
fi