Как sh -e взаимодействует с &?

Я использую sh ( dash ) на Ubuntu (lucid), и manpage имеет это, чтобы сказать о -e :

            -e errexit Если это не интерактивно, немедленно выйдите, если какая-либо непроверенная команда завершится с ошибкой.
                             Статус выхода команды считается явно протестированным
                             если команда используется для управления if, elif, while или until;  или
                             если команда является левым операндом операции «&&» или «||»
                             тор.

Что происходит, если команда фона не работает? И делает ли bash другому в этом отношении?

One Solution collect form web for “Как sh -e взаимодействует с &?”

Это довольно просто проверить. С -e :

 % bash -e -c 'false & echo waiting; if wait $!; then echo success; else echo failure; fi' waiting failure 

Поэтому, если фоновая команда не работает, оболочка не будет автоматически выходить ( -e недостаточно).

Если вы wait за пределы явного теста, wait вернет код возврата неудавшегося фонового процесса. В этом случае, если задано -e , оболочка выйдет:

 % bash -e -c 'false & echo waiting; wait $!; echo returned' waiting 

Те же результаты с bash или sh или zsh .

  • Функция Shell, чтобы проверить, есть ли приостановленный процесс, являющийся дочерним элементом этой оболочки?
  • В zsh, как я могу быстрее отказаться от процесса переднего плана?
  • Сценарий оболочки ждет команды фона
  • Linux останавливает фоновый процесс с помощью kill + PID
  • «. ~ / .bashrc "не устанавливает переменные, как ожидалось, в вызывающем скрипте
  • фоновая работа продолжает останавливаться
  • Предотвратить жизнь от раковины дольше, чем ее инициатор?
  • Как не создать файл nohup.out, но сохранить вывод терминала?
  • Странная проблема с ловушкой и SIGINT
  • В чем разница между запуском программы в качестве демона и разворачиванием ее в фоновом режиме с помощью «&»?
  • Как сохранить подсказку в фоновом режиме?
  • +/- после выполнения задания в фоновом режиме
  • Interesting Posts

    Почему мой FTP-скрипт не получит все файлы с помощью команды mget?

    Скопировать FLAC теги в файлы MP3?

    Предотвращение снаружи внешнего жесткого диска USB

    Centos – Sendmail smtp smarthost с аутентификацией

    Постоянно читайте последовательные данные и храните их в файле или буфере

    Изменение файлов внутри моментального снимка (файл qemu img)

    Как сделать вариант FreeBSD недель календарного старта в понедельник?

    Наносит ли вред установку open-vm-tools на физическую машину?

    элементарная ОС: sync ipod nano 5th gen

    Инструмент для мониторинга входных и выходных данных сети с графиками и подробной статистикой

    Как я могу загружать свой рабочий стол с помощью Wake-on-LAN?

    Устранение неполадок clang в автономном приложении

    нужна помощь с проектом vf в рыбной раковине

    Включение или в шаблон grep

    Как загружать среду рабочего стола из командной строки без диспетчера дисплеев или Wi-Fi?

    Linux и Unix - лучшая ОС в мире.