#!/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 successnhư 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, waitkhô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