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