if 문에서 [와 [[의 차이점]

if 문에서 [와 [[의 차이점]

아래 코드

if [ $a == "apple" ];
then
    echo "True"
else
    echo "False"
fi

( )이면 "True"( )을 출력한다. 와일드카드를 사용하면 비교가 실패합니다."False"a="apple"a="plum"

if [ $a == "appl"* ];

[다음으로 대체되는 경우 [[:

if [[ $a == "appl"* ]];

[이들 in a state그리고 in a state [[의 차이점은 무엇인가요 if?

답변1

  • [는 명령입니다(기본적으로 command 의 변형 test). [[이는 많은 쉘에 내장된 기능입니다.
  • foo*거기에 글을 쓸 때[...] 파일 이름 확장자(일명 와일드카드)은 내부에서 발생합니다.[[...]] 패턴 매칭발생하다.
  • [[하지만 [이식성이 문제가 되는 경우에는 사용하면 안 됩니다.
  • [[[구문의 일부 가 아니므 로 if에서와 같이 사용할 수 있습니다 [ "$exit" = 'yes' ] && exit.
  • 내가 아는 한, 두 번째는 많은 쉘에서 허용되지만 POSIX와 호환되지 않습니다 [...].===

그건 그렇고, 변수를 큰따옴표로 묶는 방법을 알고 있더라도 변수를 큰따옴표로 묶는 것이 좋습니다.분사공연합니다.

관련 정보