변수의 값은 참조되거나 할당될 때 산술 표현식으로 평가됩니다.

변수의 값은 참조되거나 할당될 때 산술 표현식으로 평가됩니다.

배쉬 매뉴얼에서

쉘 변수는 피연산자로 허용됩니다. 표현식이 평가되기 전에 매개변수 확장이 수행됩니다. 표현식 내에서 쉘 변수는 매개변수 확장 구문을 사용하지 않고도 이름으로 참조될 수도 있습니다. null이거나 설정되지 않은 쉘 변수는 매개변수 확장 구문을 사용하지 않고 이름으로 참조할 때 0으로 평가됩니다.변수가 참조되거나 "declare -i"를 사용하여 정수 속성이 할당된 변수에 값이 할당되면 변수의 값은 산술 표현식으로 평가됩니다.null 값은 0으로 평가됩니다. 셸 변수는 정수 속성을 설정하지 않고도 표현식에서 사용할 수 있습니다.

"변수를 참조하거나 "declare -i"를 사용하여 정수 속성이 주어진 변수에 값을 할당할 때 변수 값이 산술 표현식으로 평가됩니다"는 무엇을 의미합니까?

변수는 산술 표현식에서 피연산자로 사용되는 것으로 간주됩니까? var=3+4단독으로는 산술식으로 평가되지 않습니다.

"참조할 때"의 경우와 "declare -i"를 사용하여 변수에 정수 속성을 할당할 때"의 예를 들어주실 수 있나요?

감사해요.

답변1

"참조될 때"는 "사용될 때"를 의미합니다.컨텍스트는 변수의 값이 숫자로 해석되어야 함을 나타냅니다.

$ i=Hello
$ echo ${i}
Hello
$ echo $((i + 1))
1

분명히 i문자열을 포함하고 있지만 산술식에 사용되기 때문에 산술식으로 해석됩니다. 이것이 설정되지 않았거나 null인 경우 Hello0이 됩니다. 다른 값을 시도하여 효과를 i확인할 수 있습니다( 등 ).Helloi=1+1Hello=Hello

정수 속성을 가진 변수,다음을 사용하면 선언된 변수는 declare -i사용 시가 아니라 할당 시 정수로 캐스팅됩니다.

$ declare -i i
$ i=Hello
$ echo ${i}
0

이러한 모든 경우에는 오류가 보고되지 않습니다.

정수 속성 변수는 구문 설탕 없이 산술 표현식과 함께 사용할 수 있습니다.

$ declare -i i
$ i=3+4
$ echo ${i}
7

이는 할당이 산술 표현식으로 해석된다는 사실의 직접적인 결과입니다.

관련 정보