![Bash에서 [ 대 [[(단일 괄호와 이중 괄호)를 언제 사용해야 합니까? [복사]](https://linux55.com/image/25887/Bash%EC%97%90%EC%84%9C%20%5B%20%EB%8C%80%20%5B%5B(%EB%8B%A8%EC%9D%BC%20%EA%B4%84%ED%98%B8%EC%99%80%20%EC%9D%B4%EC%A4%91%20%EA%B4%84%ED%98%B8)%EB%A5%BC%20%EC%96%B8%EC%A0%9C%20%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
답변1
단일 대괄호는 일반적으로 외부 명령으로 구현되는 전통적인 형식입니다. 이중 괄호는 다음과 같은 bash(및 ksh 및 zsh) 확장입니다.아니요POSIX에서 사용되며 별도의 프로세스를 사용하지 않고 구문이 더 깔끔하다는 장점이 있습니다(아래 참조).
구문 차이점 중 하나는 리디렉션 연산자로 읽히지 않도록 <
and >
연산자(참고: 표준 POSIX 아님)를 이스케이프하거나 따옴표로 묶을 필요가 없다는 것입니다. 또한 [
문자열 중 하나가 비어 있거나 하이픈으로 시작하는 경우에는 몇 가지 트릭이 필요합니다. 이것이 바로 스크립트가 이와 같은 작업을 수행하는 것을 보는 이유입니다 . [ "x$ASD" == xValue ]
반면 bash에서는 간단히 사용할 수 있습니다 [[ $ASD == Value ]]
. 한 가지만 테스트하는 POSIX 호환 명령에는 "x" 트릭이 꼭 필요한 것은 아닙니다.이 문제더 알아보기.