Можно ли переопределить поведение пути hashbang / shebang - PullRequest
1 голос
/ 20 июля 2010

У меня есть куча скриптов (которые нельзя изменить), написанных для Windows. Windows допускает относительные пути в своих командах #!. Мы пытаемся запустить эти сценарии в Unix, но Bash, похоже, учитывает только абсолютные пути в своих директивах #!. Я посмотрел вокруг, но не смог найти опцию в Bash или программу, предназначенную для замены и интерпретации имени. Можно ли переопределить эту функциональность - возможно, даже с использованием другой оболочки?

1 Ответ

4 голосов
/ 20 июля 2010

Как правило, вы можете просто указать двоичный файл для выполнения скрипта, что приведет к игнорированию #!.Итак, если у вас есть скрипт Python, который выглядит следующим образом:

#!..\bin\python2.6
# code would be here.

В Unix / Linux вы можете просто сказать:

prompt$ python2.6 <scriptfile>

И он будет выполняться с использованием двоичного кода командной строки.Я рассматриваю строку hashbang как строку, которая просит операционную систему использовать двоичный файл, указанный в строке, но вы можете переопределить его, не выполняя сценарий как обычный исполняемый файл.

В худшем случае вы можете написать некоторые сценарии-оболочкиэто явным образом скажет интерпретатору выполнить код в файле сценария для всех платформ, которые вы будете использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...