-e를 설정하는 bash 스크립트가있어 스크립트가 종료 상태! = 0에서 종료됩니다.
변수에 할당 된 기본 셸 산술을 시도하고 때로는 표현식이 0과 같으므로 let 또는 expr 명령의 종료 상태가 "1"이됩니다.
예를 들면 다음과 같습니다.
#!/bin/bash -ex
echo "Test 1"
Z=`expr 1 - 1` || true
echo "Z will print"
let "A=4 - 4"
echo "A WILL NEVER PRINT $A"
Y=`expr 1 - 1`
echo "Y WILL NEVER PRINT $Y"
X=$(expr 2 - 2)
echo "X WILL NEVER PRINT $X"
출력은 다음과 같습니다.
$ ./test_error.sh
+ echo 'Test 1'
Test 1
++ expr 1 - 1
+ Z=0
+ true
+ echo 'Z will print'
Z will print
+ let 'A=4 - 4'
내 질문은 기본 산술 0이 아닌 실제 종료 오류에서 스크립트가 실패하도록하는 관용적 bash 스크립팅 방법은 무엇입니까?
A=`expr $C - $D` || true
그러나 그것은 해키처럼 보인다.
(( A = $C - $D ))
?