환경 변수를 설정하면 마지막 기존 코드 변수가 수정된다는 사실에 놀랐습니다 $?
.
$ 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