Я пытаюсь написать сценарий 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).