답변1
0의 정수 값은 다음으로 평가됩니다.잘못된대부분의 범용 프로그래밍 언어에서 부울 컨텍스트에서 사용될 때. 이는 다음 C 코드와 유사한 코드가 있을 수 있음을 의미합니다.
c = 100;
while (--c) { /* do something while c is non-zero */ }
셸에서 종료 상태 1은 다음과 같이 평가됩니다.잘못된조건부 컨텍스트에서 사용되는 경우.
c=100
while let --c; do
# do something while c is non-zero
done
여기에 패턴이 보이나요? 루프는 0이 아닌 종료 상태가 반환될 while
때까지 실행되며 , 0에 도달하면 반환됩니다. 이 경우 종료 상태가 0이 아닌 것은 "오류"를 의미하는 것이 아니라 단지 결과에 도달했다는 의미일 뿐입니다 .let
c
let
0
그러나 이제는 일반적 으로 다음과 같이 (산술 평가) let
로 대체 됩니다.((...))
c=100
while ((--c)); do ...; done
while
위의 루프는 내장 c
유틸리티 let
와 ((...))
.