#!/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