developer tip

Bash에서 '['뒤와 ']'앞에 공백이 있어야하는 이유는 무엇입니까?

copycodes 2020. 12. 12. 11:28
반응형

Bash에서 '['뒤와 ']'앞에 공백이 있어야하는 이유는 무엇입니까?


if성명 을 사용하는 Bash 스크립트를 작성하려고했습니다 .

if  [$CHOICE -eq 1];

스크립트는 아래와 같이 [전후에 공백을 줄 때까지 오류를 제공했습니다 ].

if  [ $CHOICE -eq 1 ];

여기 내 질문은 왜 Bash에서 대괄호 주위의 공간이 그렇게 중요합니까?


그건 당신이 파악되면 [A는 명령을 , 훨씬 더 선명하게!

[" test" 철자를 쓰는 또 다른 방법 입니다.

help [

그들이 그러나 동시에 정확히 같은, test보다 상세한 도움말 페이지를 끈다. 검사

help test

...자세한 내용은.


또한 의도적으로 사용 help test하고 있으며 man test. 의 때문 test와는 [쉘 내장 명령 요즘입니다. 해당 기능 세트 페이지에 설명 된 명령 인 coreutils /bin/test다를 수 있습니다 ./bin/[man


에서 또 다른 질문 :

약간의 역사 : 이것은 '['가 역사적으로 쉘 내장이 아니라 표현을 인수로 받고 결과를 반환하는 별도의 실행 파일이기 때문입니다. '['를 공백으로 묶지 않으면 쉘은 $ PATH에서 다른 파일 이름을 검색하고 찾을 수 없습니다. Andrew Medico 2009 년 6 월 24 일 1:13


[은 명령이며 $CHOICE인수 여야하지만 [$CHOICE( [사이에 공백없이 $CHOICE)라는 명령을 실행하려고합니다 [$CHOICE. 명령 구문은 다음과 같습니다.

command arguments separated with space

[A는 test명령. 따라서 공간이 필요합니다.

참고 URL : https://stackoverflow.com/questions/9581064/why-should-there-be-a-space-after-and-before-in-bash

반응형