#!/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
Ich habe success
als Exit-Status erwartet, als ich 0 gesendet habe, aber ich erhalte immer noch failure
.
Wartet wait
auch nicht 300 Sekunden. Stattdessen erhalte ich sofort die Nachricht. Ich gehe davon $!
aus, dass es sich $$
in meinem Drehbuch um das unmittelbare Kind von handelt . Ist es nicht
Ist es möglich, den Ausgangsstatus des Wartens wie zu erfassen exit_status=$(wait $!)
?
if ! ((exit_status));then
echo sucess
else
failure
fi