bash 쉘스크립트 중 test 명령어 중 싱글 브라켓[] 과 더블 브라켓[[]] 차이

new31514의 이미지

제목 그대로 입니다.

현재 책을 보면서 쉘스크립트 연습 중인데요... 싱글 브라켓과 더블 브라켓의 차이를 모르겠어요. 즉 어떤때 싱글을 써야하고 더블을 써야 하는지 모르겠습니다.

그리고 (()) 도 있고... () 이렇게 싱글도 있나요? ㅠㅜ 엄청 헷갈리네요 ㅠㅜ

klara의 이미지

'['은 명령어입니다. which [ 라고 쳐보시면 실제로 [라는 실행파일이 있다는 걸 알 수 있습니다.
test와 동일하고 좀더 쓰기 편하고 보기 좋게 마지막에 ]가 와야하는 명령어지요.
[[]]은 별도의 명령어가 아니라 bash의 자체 문법입니다. test보다 더 많은 기능이 있습니다.

()는 $(...)말씀하시는거라면 표현식 평가(expression evaluation) `...`와 같습니다.
(())는 수식 전개를 위한 bash만의 문법입니다.
이 두개는 딱히 헷갈릴게 없는 전혀 다른 용도니까 그냥 한번 매뉴얼 읽어보시면 될거에요.

new31514의 이미지

전 아직 갈길이 먼것 같네요.. ㅠㅜ 죽도록 연습해야 겠습니다.