2.1. 스크립트 실행하기

스크립트를 다 만들었고 실행시키려고 한다면 sh scriptname [1] 이나, bash scriptname이라고 치면 됩니다. (sh <scriptname은 스크립트가 표준입력(stdin)에서 읽는 것을 사실상 막기 때문에 별로 권장할 만한 방법이 아닙니다.) 더 편한 방법은 chmod를 써서 스크립트 자체를 실행할 수 있게 만드는 것입니다.

이렇게 하거나:

chmod 555 scriptname (아무나 읽고/실행 할 수 있게) [2]

아니면

chmod +rx scriptname (아무나 읽고/실행 할 수 있게)

chmod u+rx scriptname (스크립트 소유자만 읽고/실행할 수 있게)

이렇게 스크립트를 실행할 수 있게 해 놓았다면, ./scriptname [3] 이라고 쳐서 실험해 볼 수 있습니다. 그 스크립트가 "#!"으로 시작한다면 해당하는 명령어 해석기를 불러서 스크립트를 실행 시키게 됩니다.

끝으로, 테스트와 디버깅이 끝난 다음에 여러분과 다른 사용자들이 그 스크립트를 쓸 수 있게 하려면 /usr/local/bin 디렉토리로 옮기면 됩니다(당연히 루트로). 이렇게 해 놓으면 명령어 줄에서 간단히 scriptname[ENTER]을 치는 것만으로 실행 시킬 수 있습니다.

주석

[1]

주의사항: Bash 스크립트를 sh scriptname이라고 실행 시키게 되면 Bash 전용의 확장된 기능이 꺼져서 실행이 안 될 수도 있습니다.

[2]

쉘이 스크립트를 실행시키려면 스크립트를 읽어야 하기 때문에 실행 퍼미션뿐만 아니라 읽기 퍼미션도 있어야 됩니다.

[3]

왜 간단히 scriptname 이라고 실행 시키지 않을까요? 여러분이 현재 있는 디렉토리($PWD)에 scriptname이 있는데도, 왜 실행되지 않을까요? 왜냐하면, 보안상의 이유로 현재 디렉토리를 나타내는 "." 은 사용자의 $PATH에 들어 있지 않기 때문입니다. 따라서 현재 디렉토리에 있는 스크립트를 실행 시키려면 ./scriptname이라고 강제로 실행 경로를 알려줘야 합니다.