$[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.html
bash-doc-2.0.tar.gz 다운로드문서 NEWS
에는 다음이 언급되어 있습니다.
$[...]
산술 확장 구문은 더 이상 지원되지 않습니다$((...))
.
$((...))
도표준 구문산술 확장에 사용되지만 아마도 원래 Bash 구현보다 나중에 표준에 추가되었을 것입니다.
그러나 $[...]
Bash 5.0에서는 여전히 작동하는 것으로 보이므로 완전히 제거되지는 않았습니다.