#!/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
Saya mengharapkan success
status keluar ketika saya mengirim 0, tetapi saya masih mendapatkan failure
.
Juga, wait
jangan menunggu selama 300 detik. Sebagai gantinya, saya langsung menerima pesannya. Saya berasumsi $!
adalah anak langsung dari $$
skrip saya. Bukan?
Apakah mungkin untuk mengambil status keluar dari wait like exit_status=$(wait $!)
?
if ! ((exit_status));then
echo sucess
else
failure
fi