#!/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
Esperaba el success
estado de salida cuando envío 0, pero todavía recibo failure
.
Además, wait
no espera 300 segundos. En cambio, recibo el mensaje de inmediato. Supongo que $!
es el hijo inmediato de $$
mi guión. ¿No es así?
¿Es posible capturar el estado de salida de esperar como exit_status=$(wait $!)
?
if ! ((exit_status));then
echo sucess
else
failure
fi