옥타브를 배우고 나면, ‘#!’ 스크립트 원리를 사용하여 독립적인 옥타브 스크립트를 짜고 싶어질 것입니다. 독립적인 옥타브 스크립트는 그누 체제와 많은 유닉스 운영체제1 상에서 가능합니다.
독립적인 옥타브 스크립트는 사용자가 옥타브 언어를 파악하지 않고도 실행시킬 수 있는 풀그림을 만들고자 할 때에 유용합니다. 또한 일괄적인 자료 처리를 할 때도 사용합니다. 대화형 옥타브에서 개발하고 검증한 셈법은 옥타브 스크립트가 될 수 있으며, 새 자료 기록철을 계속 처리하는 데에 사용합니다.
실행 가능한 옥타브 스크립트의 간단한 예시로써, 아래 줄을 담은 hello라는 기록철을 생성해 봅시다.
#! octave-interpreter-name -qf # a sample Octave program printf ("Hello, world!\n");
(옥타브-해석기-이름을 옥타브 실행기 경로로 바꾸어야 합니다.) ‘#!’가 기록철의 맨 처음에
등장해야 작동함을 유의하십시오. 기록철을 실행 가능하게 만든 다음에는(유닉스 운영체제에서는 chmod
명령어를 포함해야
합니다.), 아래 명령을 입력하면 됩니다.
hello
아래와 같이 타자하면 조가비와 운영체제에서 옥타브 실행을 준비합니다.
octave hello
‘#!’으로 시작하는 줄에서 해석기를 실행하기 위한 전체 경로와 기록철 이름과 해석기에서 처리할 선택 초기 명령줄 매개변수를 열거합니다. 그러면 운영체제가 주어진 매개변수와 실행 가느한 풀그림의 전체 매개변수 목록을 받아 해석기를 실행합니다. 목록의 첫 번째 매개변수는 풀그림의 전체 기록철 이름입니다. 목록의 나머지 매개변수는 옥타브 설정이나 자료 기록철 등입니다. 보통 ‘-qf’ 매개변수를 일반적인 시작 인사말이 독립형 옥타브 풀그림에서 출력되지 않게 하는 데와 개별 사용자의 ~/.octaverc 내용에 따라 작동하도록 하는 데에 사용합니다. 명령줄에서 옥타브 실행을 보십시오.
일부 운영체제는 ‘#!’ 다음에 인식 가능한 문자 수를 제한하는 경우가 있음에 유의하십시오. 또한 ‘#!’ 줄에 적은 매개변수는 여러 조가비/운영체제에서 서로 다르게 해석합니다. 대부분은 매개변수 모두를 한 문자열에 묶어 단일 매개변수로 해석기에 넘깁니다. 이 경우에는 아래 스크립트가
#! octave-interpreter-name -q -f # comment
아래 명령줄을 입력하는 것과 같습니다.
octave "-q -f # comment"
이는 오류를 발생시킵니다. 안타깝게도, 옥타브는 명령이 명령줄에서 온 것인지, ‘#!’ 스크립트에서 온 것인지 구분하지 못하여, ‘#!’ 방식을 사용할 때에는 조금 주의를 기해야 합니다.
실행 가능한 옥타브 스크립트에서 옥타브를 실행하면, 내장 함수 argv
가 스크립트의 ‘#!’
줄에 있어 해석기에서 처리되는 매개변수가 아닌, 실행 가능한 옥타브 스크립트에서 처리되는 명령줄 매개변수를 낱칸 배열에 담아 반환함에
유의하십시오. 아래 풀그림 예시는 ‘-qf’가 아닌, 실행한 스크립트에서 사용하는 명령줄을 재출력합니다.
#! /bin/octave -qf printf ("%s", program_name ()); arg_list = argv (); for i = 1:nargin printf (" %s", arg_list{i}); endfor printf ("\n");