답변:
첫 번째 예에서는 $((X+1))
표현식 X + 1을 평가하고 결과로 확장 된 다음 변수에 할당됩니다.
두 번째 예제에서는 1 $((X=X+1))
씩 증가 X
( $((X++))
유효하고 짧지 만 쉘에서 반드시 지원하지는 않음) 한 다음 새로운 값인으로 확장됩니다. $X
이는 널 명령에 대한 첫 번째 인수 :
입니다. null 명령은 인수를 무시하고 결과는 부작용과 함께 무시됩니다.
나는 세 가지 (상대적으로 주관적인) 이유 때문에 개인적으로 첫 번째 형식을 선호합니다.
다음과 같은 하나의 명령으로 환경을 수정하는 경우 첫 번째 버전을 사용해야합니다
X=$((X+1)) /usr/local/bin/something
인수에 직접 평가를 추가하려면 두 번째 양식을 사용해야합니다.
ls -la "file-$((X++))" # or ...
ls -la "file-$((X=X+1))" # for better compatibility
이것은 원하는 부작용이 있고 한 줄을 절약하며 매우 분명합니다.