2014-10-19 7 views
1

을 평가하기 위해 내가 CSH에서이 일을하고는이상한 C 쉘 리턴 코드 1-1

set it = `expr 1 - 1` 
echo $? 

이 0-it 설정하지만 오류 코드가 아닙니다 0 경우는 왜 반환 된 오류 코드는 1입니다 표현이 올바르게 평가되고 응답이 올바르게 설정 되었습니까? 한편

나는

set it = `expr 2 - 1` 
echo $? 

다음 오류 코드가 0이 1-1 평가의 문제는 무엇인가이다

이 있다면?

답변

1

expr이 이상합니다. 0으로 평가되는 식에서도 마찬가지입니다. man page 인용

:

종료 상태 EXPRESSION가 null도도 0이면 0, 1 EXPRESSION 구문이 무효로되며, 3 경우 오류가 발생하면 EXPRESSION 가 널 (null) 또는 0, 2 인 경우.

쉘 계산이 바람직합니다.

@ it = 1 - 1 
echo $? : $it 
0 : 0