Можно ли использовать скрипт как интерпретатор с помощью #! строка hashbang?

Я пытаюсь написать сценарий bash, который будет вести себя как базовый интерпретатор, но, похоже, он не работает: пользовательский интерпретатор не запускается. Что я делаю не так?

Вот простая установка, иллюстрирующая проблему:

/ bin / интерпретатор : [принадлежит пользователю root; исполняемый файл]

#!/bin/bash

echo "I am an interpreter running " $1

/ Users / zeph / script принадлежит мне и является исполняемым:

#!/bin/interpreter

Here are some commands for the custom interpreter.

Из того, что я понимаю о механике хэшбэга, скрипт должен быть исполняемым следующим образом:

$ ./script
I am an interpreter running ./script

Но это не не работает. Вместо этого происходит следующее:

$ ./script 
./script: line 3: Here: command not found

... Похоже, что / bin / bash пытается интерпретировать содержимое ./ script . Что я делаю не так?

Примечание: хотя кажется, что / bin / интерпретатор никогда не запускался, я действительно получаю сообщение об ошибке, если оно не существует:

$ ./script
-bash: ./script: /bin/interpreter: bad interpreter: No such file or directory

( Второе примечание: если это имеет значение, я делаю это на MacOS X).

10
задан Tom Rees 9 July 2011 в 19:55
поделиться