리눅스 배포판을 우분투를 사용할 경우 쉘 스크립트를 작성할 때 한가지 주의 사항이 있다.
평소와 같이 쉘 스크립트를 작성 후, 실행을 시키면 아마도 다음과 비슷한 메시지를 보게 될 것이다.
Syntax error: “(” unexpected operator
이는 /bin/sh 실행 파일의 경로 때문에 발생되는 일이다.
보통의 우분투에서 ls -l /bin/sh 를 실행하면 다음과 같은 결과가 나온다.
/bin/sh 의 심볼릭 링크 경로가 bash 가 아닌것이다. 그래서 위와 같은 에러가 발생되는 것이다.
참고로 우분투에서는 기본적으로 /bin/sh 가 dash 와 연결되어 있다. 그러므로 에러를 잡기 위해서는 /bin/sh 를 bash 로 바꾸어주던가, 혹은 스크립트 첫 머리의 #!/bin/sh 문장을 #!/bin/bash 로 바꾸면 된다.
/bin/sh 를 bash 로 연결짓는 명령은 다음과 같다.
# ln -s /bin/sh bash