종료 코드가 기록되지 않은 이유를 확인할 수 없습니다.

종료 코드가 기록되지 않은 이유를 확인할 수 없습니다.

매우 이상하므로 다음은아니요"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}

그러면 노드 프로세스는 0이 아닌 코드로 종료되지만 bash는 다음과 같이 말합니다.

배쉬 종료 코드 => 0

둘 다 올바른 결과를 제공하지 않습니다. 내 코드에 문제가 있습니다. 노드 프로세스의 올바른 종료 코드를 캡처하여 인쇄하고 싶습니다! 무엇이 잘못될 수 있나요?

답변1

$?마지막 명령의 종료 상태입니다. 이 경우 echo " "성공 시 항상 0을 반환합니다. $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}

관련 정보