#!/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
ผมคาดหวังว่าsuccess
เป็นสถานะออกเมื่อฉันส่ง 0 failure
แต่ฉันยังคงได้รับ
นอกจากนี้wait
ไม่ต้องรอเป็นเวลา 300 วินาที แต่ฉันได้รับข้อความทันที ฉันถือว่า$!
เป็นลูกของ$$
สคริปต์ ไม่ใช่เหรอ
สามารถจับสถานะทางออกของการรอได้exit_status=$(wait $!)
หรือไม่?
if ! ((exit_status));then
echo sucess
else
failure
fi