리눅스 배포판을 우분투를 사용할 경우 쉘 스크립트를 작성할 때 한가지 주의 사항이 있다.

 평소와 같이 쉘 스크립트를 작성 후, 실행을 시키면 아마도 다음과 비슷한 메시지를 보게 될 것이다.

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

Tags: , ,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.