#!/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
Tôi đã mong đợi success
như trạng thái thoát khi tôi gửi 0, nhưng tôi vẫn nhận được failure
.
Ngoài ra, wait
không chờ 300 giây. Thay vào đó, tôi nhận được tin nhắn ngay lập tức. Tôi giả sử $!
là con ngay lập tức $$
trong kịch bản của tôi. Phải không?
Có thể chụp trạng thái thoát của chờ đợi như thế exit_status=$(wait $!)
nào?
if ! ((exit_status));then
echo sucess
else
failure
fi