#!/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 successestado de salida cuando envío 0, pero todavía recibo failure.
Además, waitno 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
