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