#!/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
Je m'attendais success
à un statut de sortie lorsque j'envoie 0, mais j'obtiens toujours failure
.
De plus, wait
n'attend pas 300 secondes. Au lieu de cela, je reçois le message immédiatement. Je suppose que $!
c'est l'enfant immédiat de $$
mon script. N'est-ce pas?
Est-il possible de capturer l'état de sortie d'attente comme exit_status=$(wait $!)
?
if ! ((exit_status));then
echo sucess
else
failure
fi