답변:
#!/bin/bash
thing() {
local foo=$(asjkdh) ret="$?"
echo "$ret"
}
127
"명령을 찾을 수 없음"에 대한 올바른 오류 코드 인가 에코됩니다 .
local
둘 이상의 변수를 정의 하는 데 사용할 수 있습니다 . 따라서 로컬 변수 RET
를 작성 하여 하위 쉘의 종료 코드를 캡처하여 local
성공하고 $?
0으로 설정 합니다.
bash
이 표현을 왼쪽에서 오른쪽으로 평가 하는 것이 보장 됩니까?
bash
참조 설명서 에서 이것에 대한 정보를 찾을 수 없습니다 .
shellcheck
이 문제를 포착 할뿐만 아니라 unix.stackexchange.com/a/281749/24718 의 솔루션을 제안하십시오 !