2016-12-10 1 views
0

이 연산자 $ []를 알지 못하고 그것에 대해 뭔가를 찾을 수 없습니다. 나는 다음 두 코드는 동일한 출력을

a=4 
b=1 
echo $[a-b] # => 3 

a=4 
b=1 
echo $((a-b)) # => 3 

을 줄 것을 알고있다 그러나 그래서 위해 $ [] 연산자는 무엇이며, $와의 차이점은 무엇인가 (())?

내 zsh 셸 프롬프트에서 아무 것도 열지 않고 아무 것도 닫지 않으면 mathsubst이 기록됩니다.

답변

2

읽기 man bash은 이전 형식 $[expression]이 사용되지 않으며 제거 될 것이라고 말합니다. 그렇지 않으면 동급이어야합니다.

산술 확장을 사용하면 산술 표현 을 평가하고 결과를 대체 할 수 있습니다. 산술 확장의 형식은 다음과 같습니다

  $((expression)) 

이전 형식 $[expression]은 더 이상 사용되지 않으며 배쉬의 향후 버전에서 제거 될 예정입니다.

+0

구문이 여전히 'bash'4.4에서 지원되지만 이전 버전에서는 더 이상 사용되지 않는 경고가 제거되었습니다. – chepner