쉘스크립트 안에서 변수에 "(더블쿼트) 쒸우는 방법 문의 드립니다.

sunnyncom의 이미지

grep을 이용하는 bash 스크립트를 작성하고 있는데요...

파라미터로 "(" 나 ")"등의 문자가 포함되면 아래와 같은 에러가 납니다.

bash: syntax error near unexpected token `('

test_script 라는 스크립트가 아래와 같다고 했을 때,

#!/bin/bash
 
pattern=$1
grep --color=auto -n "$pattern" *

test_script TESTPATTERN(XYZ) 하면 위와 같은 에러가 나고요...
test_script "TESTPATTERN(XYZ)" 하면 정상적으로 결과가 나옵니다.

즉, 스크립트를 사용할 때 파라미터에 더블쿼트를 안쒸우고 입력해도 에러가 나지 않게 할려면
어떻게 해야 하는지요?

에러가 무슨 내용인지는 알겠는데... 스크립트 안에서 어떻게 해야 할지를 모르겠습니다.
도와 주시면 감사하겠습니다... ㅜ.ㅜ

ai의 이미지

스크립트의 문제가 아니고, 명령행 인자를 스크립트로 넘기는 bash 자체의 동작이므로, 회피할 수가 없습니다..

War doesnt determine whos right, just whos left.

sunnyncom의 이미지

아~ 여태 그럼 뻘짓을 한거군요... OTL
뻘짓을 멈추게 해주셔서 감사합니다... ㅜ.ㅜ

익명 사용자의 이미지

아래와 같이 확인해보실수 있겠습니다.

$ echo a(1)
bash: syntax error near unexpected token `('
$ echo a\(1\)
a(1)