Saturday, May 05, 2007
리눅스/유닉스(Linux, Unix)에서 Perl(펄) 스크립트 실행 방법
예를 들어 tt.pl 이라는 Perl(펄) 스크립트 파일이 있을 때
vim에디터로 새로 만든 스크립트라면, 그 파일을 "실행 가능 모드"로 변경해 주어야 합니다. 그렇지 않으면 실행이 되지 않습니다.
chmod +x tt.pl
이런 명령을 사용하면 tt.pl 파일이 실행 가능하게 됩니다.
그런데 그냥
tt.pl
이렇게 하면 여전히 실행이 되지 않습니다.
./tt.pl
이렇게 파일명 앞에 마침표와 슬래시를 붙여야 합니다. 참고로 "./" 는 "현재 디렉토리"를 의미합니다. 윈도우의 도스창에서와는 달리, 유닉스/리눅스는 보안상의 이유로 인해, 현재 디렉토리의 파일이라도 패스를 꼭 적어 주어야 실행이 됩니다. 그렇지 않으면 파일을 찾을 수 없다는 에러가 납니다.
윈도우에서 작성된 펄 스크립트를 리눅스에서 실행하면
-bash: ./tt.pl: /usr/bin/perl^M: bad interpreter: No such file or directory
이런 에러나는 경우가 많습니다. 리눅스용 펄은 윈도우/도스용 개행문자를 이해하지 못하기 때문입니다. 위의 경우 도스 개행문자를 "^M"이라는 문자로 오인하고 있습니다.
vim 에디터를 사용하여, 펄 파일의 개행문자를 유닉스용으로 변환해 주면 됩니다: ▶▶ Vim Vi, 도스 텍스트를 유닉스 텍스트로 개행문자 변환; DOS CR-LF to Unix Newline
vim에디터로 새로 만든 스크립트라면, 그 파일을 "실행 가능 모드"로 변경해 주어야 합니다. 그렇지 않으면 실행이 되지 않습니다.
chmod +x tt.pl
이런 명령을 사용하면 tt.pl 파일이 실행 가능하게 됩니다.
그런데 그냥
tt.pl
이렇게 하면 여전히 실행이 되지 않습니다.
./tt.pl
이렇게 파일명 앞에 마침표와 슬래시를 붙여야 합니다. 참고로 "./" 는 "현재 디렉토리"를 의미합니다. 윈도우의 도스창에서와는 달리, 유닉스/리눅스는 보안상의 이유로 인해, 현재 디렉토리의 파일이라도 패스를 꼭 적어 주어야 실행이 됩니다. 그렇지 않으면 파일을 찾을 수 없다는 에러가 납니다.
윈도우에서 작성된 펄 스크립트를 리눅스에서 실행하면
-bash: ./tt.pl: /usr/bin/perl^M: bad interpreter: No such file or directory
이런 에러나는 경우가 많습니다. 리눅스용 펄은 윈도우/도스용 개행문자를 이해하지 못하기 때문입니다. 위의 경우 도스 개행문자를 "^M"이라는 문자로 오인하고 있습니다.
vim 에디터를 사용하여, 펄 파일의 개행문자를 유닉스용으로 변환해 주면 됩니다: ▶▶ Vim Vi, 도스 텍스트를 유닉스 텍스트로 개행문자 변환; DOS CR-LF to Unix Newline
tag: perl
Perl | 펄
tag: linux
리눅스 Linux | 유닉스 Unix | 시그윈 Cygwin
<< Home