Supponiamo il seguente pezzo di codice bash:
foo > logfile 2>&1 &
foo_pid=$!
while ps -p$foo_pid
do
ping -c 1 localhost
done
wait $foo_pid
if [[ $? == 0 ]]
then
echo "foo success"
fi
È sicuro supporre che $?
contenga effettivamente il codice di ritorno foo
e non il codice di ritorno di ping
? Se la risposta a questa domanda è: "Non puoi assumerlo." allora come posso modificare questo pezzo di codice per essere sicuro che $?
contenga sempre il codice di ritorno di foo
?
wait
non funziona. Il processo viene raccolto e lo stato di uscita scartato subito prima della visualizzazione del prompt (per impostazione predefinita).