bash 변수 할당이 최종 종료 코드 $에 영향을 미치는 이유는 무엇입니까? 이것은 어디에 문서화되어 있습니까?

bash 변수 할당이 최종 종료 코드 $에 영향을 미치는 이유는 무엇입니까? 이것은 어디에 문서화되어 있습니까?

환경 변수를 설정하면 마지막 기존 코드 변수가 수정된다는 사실에 놀랐습니다 $?.

$ false
$ echo $?
1
$ false
$ FOO=BAR
$ echo $?
0
$ 

Bash 매뉴얼에는 다음과 같이만 나와 있습니다 $?.

($?) 가장 최근에 실행된 전경 파이프의 종료 상태로 확장됩니다.

설정 중인 변수의 종료 코드는 어디에 기록됩니까?실패할까요?

답변1

오른쪽 표현식을 평가할 수 없으면 할당이 실패할 수 있습니다.

예를 들어

$ x=HELLO
$ x=$((1/0))
bash: 1/0: division by 0 (error token is "0")
$ echo $?
1 

이 경우 값은 $x변경되지 않습니다.

$ echo $x
HELLO

관련 정보