bash에서 달러 기호 뒤에 대괄호 $[...]가 오는 것은 무엇을 의미합니까?

bash에서 달러 기호 뒤에 대괄호 $[...]가 오는 것은 무엇을 의미합니까?

$[expr]산술 확장을 수행하는 것은 다음 과 같습니다 $((expr)). 하지만 $[bash 매뉴얼에서는 어떤 언급도 찾을 수 없습니다. 이 명령은 결과를 제공하지 않습니다.

gunzip -c /usr/share/man/man1/bash.1.gz | grep -E '\$\['

이 연산자는 무엇입니까? 그 행동은 어디에서나 표준화되어 있습니까?

내 bash 버전: GNU bash, 버전 3.2.51(1)-release (x86_64-apple-darwin13)

답변1

GNU bash 메일링 리스트의 스레드에서, 이는 해당 $[구문이 초기 구문이고 $((Korn 쉘에서 후자를 사용하기 때문에 더 이상 사용되지 않음을 나타냅니다.

~에 따르면이 웹사이트, bash 3.2.48 매뉴얼에는 $[구문에 대한 참조가 포함되어 있습니다. 따라서 이 참조는 3.2.51에서 제거된 것으로 추측됩니다.

답변2

당신은 찾을 수 있습니다이전 bash 소스 코드는 여기에 있습니다.. 특히 다운로드할 때bash-1.14.7.tar.gz. 당신 은 documentation/bash.txt다음을 찾을 수 있습니다 :

산술 확장

산술 확장을 사용하면 산술 표현식을 평가하고 결과를 바꿀 수 있습니다. 산술 확장은 두 가지 형식으로 제공됩니다.

     $[expression]

     $((expression))

$[에 대한 참조doc/bash.htmlbash-doc-2.0.tar.gz 다운로드문서 NEWS에는 다음이 언급되어 있습니다.

$[...]산술 확장 구문은 더 이상 지원되지 않습니다 $((...)).

$((...))표준 구문산술 확장에 사용되지만 아마도 원래 Bash 구현보다 나중에 표준에 추가되었을 것입니다.

그러나 $[...]Bash 5.0에서는 여전히 작동하는 것으로 보이므로 완전히 제거되지는 않았습니다.

관련 정보