나는 단지 "피연산자"가 무엇인지 누군가가 설명해 주기를 원합니다. 왜냐하면 나는 그것을 이해하지 못하기 때문입니다. 제가 이 글을 읽은 맥락은 다음과 같습니다.
쉘 변수는 다음과 같이 허용됩니다.피연산자;식을 평가하기 전에 매개변수 확장이 수행됩니다. 표현식 내에서 쉘 변수는 매개변수 확장 구문을 사용하지 않고도 이름으로 참조될 수도 있습니다.
답변1
하나운영자하나 이상의 작업에 대해 수행되는 작업입니다.피연산자.
예를 들어 수식에서 3 + 4
더하기 기호 +
는 연산자이고 값 3
은 4
피연산자입니다.
당신의 제안에 관해서는,"셸 변수를 피연산자로 허용", 이는 쉘 변수가 다음과 같은 공식에 사용될 수 있음을 의미합니다. 구문론적으로 이는 a + 4
스크립트에서 다음과 같이 표현되며 해당 값은 다음과 같이 얻어집니다. 공백은 선택 사항입니다.sh
(( a + 4 ))
$(( a + 4 ))
a=3
b=$((a+4))
echo "b=$b" # outputs b=7
경고하다:가능하다면 $var
내부적으로 구문을 사용하지 마세요. 구문 자체는 표현식 자체를 고려하기 전에 평가되기 때문입니다. $(( … ))
예:
a='4+3'; echo "$(( a * 2 ))" # returns "14", i.e. (4+3)*2
하지만
a='4+3'; echo "$(( $a * 2 ))" # returns "10", i.e. 4+3*2
a=
(정의되지 않음 또는 비어 있음) 에도 비슷한 확장이 적용되어 0*2
첫 번째 표현식은 표시되지만 *2
두 번째 표현식은 표시되지 않습니다(오류).