LINUX.ORG.RU

А статус в переменную сохранить нельзя зарание ?

> ls несуществующий_файл
ls:  cannot access несуществующий_файл: No such file or directory
> r=$?
> :&
> echo $r
2  Done

zaz ★★★★
()
Ответ на: комментарий от zaz

а если мы заместо :& запускаем команду ДО первой команды и не знаем когда она завершится, а нам надо получить возврат команды, запускаемой после неё?

command1&&
command2&
command3&&
command4

teod0r ★★★★★
() автор топика
Ответ на: комментарий от teod0r

А в чем проблема ? «$?» хранит статус возврата последней выполненой команды (а не завершившегося процесса) Если команды была интерактивная - то статус команды это код возврата запускаемого процесса (в вашем примере ls). Если команда фонавая (&) - то статус будет всегда 0 (даже если команды не существует) (за исключением ситуации когда fork отработал с ошибкой).

Для получения статуса фоновых команд нужно использовать «wait»

zaz ★★★★
()
Ответ на: комментарий от zaz

Для получения статуса фоновых команд нужно использовать «wait»

мне как раз не нужен статус фоновой команды. посмотри мой последний пример.
мне надо чтобы command3 была выполнена после успешного завершения command1, а command4 — после успешного завершения command3, вне зависимости от завершения command2&

teod0r ★★★★★
() автор топика
Ответ на: комментарий от zaz

вобщем как-ток:

check(){ [[ $rc = 0 ]]||exit 1; }
command1&&
command2&&
rc=$?
command3&
check
command4&&
command5&&
rc=$?
command6&
check
command7
...

teod0r ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.