Не удается определить, почему код выхода не регистрируется

Странный, поэтому следующее не будет записывать «код выхода bash …»

#!/usr/bin/env bash OUTPUT_PATH=${PROJECT_ROOT:-$PWD}/npm-install-output.log npm --loglevel=warn --progress=false install > ${OUTPUT_PATH} 2>&1 && export NODE_PATH=${NODE_PATH}:~/.suman/node_modules && node $(dirname "$0")/test.js && EXIT=$? && echo " " && # newline echo "bash exit code => $?" && exit ${EXIT} 

если я удалю один «&&» после команды node так:

 #!/usr/bin/env bash OUTPUT_PATH=${PROJECT_ROOT:-$PWD}/npm-install-output.log npm --loglevel=warn --progress=false install > ${OUTPUT_PATH} 2>&1 && export NODE_PATH=${NODE_PATH}:~/.suman/node_modules && node $(dirname "$0")/test.js # <<<<< removed "&&" chars EXIT=$? && echo " " && # newline echo "bash exit code => $?" && exit ${EXIT} 

то процесс узла завершится с ненулевым кодом, но затем bash говорит:

код выхода bash => 0

оба они не дают правильных результатов, что-то не так с моим кодом. Я хочу получить правильный код выхода процесса узла, и я хочу его распечатать! Что может быть неправильным?

  • Передавать команды сценарию, который ждет ввода на машине Linux
  • Объединение нескольких выходов grep в переменную
  • Печатать строки, в которых первое поле имеет только четыре символа, используя регулярное выражение в awk?
  • BASH | Отчет формата CSV
  • Имя пути в сценарии оболочки содержит дополнительные символы при запуске скрипта
  • Вызов скриптов из других скриптов
  • Сообщение об ошибке сценария копирования CSV в bash
  • Изменение части строки в сценарии bash
  • One Solution collect form web for “Не удается определить, почему код выхода не регистрируется”

    $? это статус выхода вашей последней команды. В этом случае он всегда возвращает 0, потому что echo " " было успешным. Используйте $EXIT вместо $?

     #!/usr/bin/env bash OUTPUT_PATH=${PROJECT_ROOT:-$PWD}/npm-install-output.log npm --loglevel=warn --progress=false install > ${OUTPUT_PATH} 2>&1 && export NODE_PATH=${NODE_PATH}:~/.suman/node_modules && node $(dirname "$0")/test.js # <<<<< removed "&&" chars EXIT=$? && echo " " && # newline echo "bash exit code => $EXIT" && exit ${EXIT} 
    Interesting Posts

    Как настроить nginx для динамического чтения папок, учетных записей пользователей / доменов?

    Труба в сценарии оболочки

    Как разрешения для Linux работают, когда процесс выполняется как определенная группа?

    Выберите таблицу разделов диска в файле preseed, автоматически установленном Debian

    Как стирает MTD с «dd if = / dev / zero», отличным от «flash_eraseall»?

    Каковы команды выхода из системы и завершения работы с диспетчером сеансов?

    bash regex для поиска и сохранения строки из файла

    Максимальная память, используемая 32-битной системой RHEL 6

    Настройка значений частоты процессора

    Измените владельца файла, который я могу записать в

    Инструмент командной строки для комплексного и комплексного тестирования подключения к Интернету

    Почему LXC-create возвращает ошибку «sudo.conf должен быть 0»?

    Xargs и rm с a *

    Извлечение информации из текстового файла

    Замена содержимого файла SED в 2 файлах

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