Как я могу запустить Perl-скрипт из любого места в среде Unix? - PullRequest
5 голосов
/ 10 июля 2011

У меня есть этот Perl-скрипт, который мне нужно распространить среди моих коллег, которые хотят запустить этот скрипт из любой точки среды Unix.Что я могу сделать с моей стороны, чтобы облегчить им запуск сценария PERL?Например, они могут просто разместить скрипт PERL где-нибудь в своем каталоге и запустить просто набрав

./xyz.pl ttt.conf

без указания пути (например, /home/abc/bin/ddd/xyz.pl ttt.conf)

Ответы [ 4 ]

5 голосов
/ 10 июля 2011

Я использовал это, добавив каталог «bin» в свой домашний каталог и добавив его в переменную $PATH. Затем вы можете добавить любой скрипт, который вы хотите использовать в этот каталог.

Я больше не знаком с точным синтаксисом, но что-то вроде:

в .bashrc:

$PATH = ( $PATH , $HOME/bin )

Затем поместите скрипт в /home/user/bin (предполагается, что $ HOME == / home / user). Когда вы перезагрузите оболочку, она будет использоваться как любая обычная команда / программа.

ETA: см. Комментарий Роберта ниже о синтаксисе. Кроме того, чтобы ваши коллеги могли использовать ваш скрипт, вы можете просто использовать жестко заданный путь, такой как /home/patrick/bin.

5 голосов
/ 10 июля 2011

Поместите скрипт в /usr/local/bin (или в любое другое место в $PATH).Возможно, вашему сисадмину придется вам помочь.

4 голосов
/ 10 июля 2011

Техника, которую я использую:

#!/usr/bin/env perl

Это обычный способ заставить интерпретатор команд найти Perl без (а) перемещения файла или (b) объявления явного пути для Perl в шебанге.

Это упоминается под переносимость на: http://en.wikipedia.org/wiki/Shebang_(Unix)

2 голосов
/ 10 июля 2011

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

:bin localadmin$ ./perlextip
-bash: ./perlextip: Permission denied
:bin localadmin$ chmod +x perlextip 
:bin localadmin$ ./perlextip 
Exit 0!  Yeehaw.

Кроме того, следует отметить, что он не обязательно должен быть на вашем пути .... Вы можете просто вызвать его по полному пути, которому предшествует точка и косая черта, чтобы выполнить его.

:/ localadmin$ ./ServiceData/UNIX/bin/extip
Exit 0!  Yeehaw.

Вы также можете создать псевдоним для такой команды в вашем ~/.bash_profile или тому подобном, который позволит вам сделать общесистемные сочетания клавиш, и вы даже можете добавить sudo или тому подобное, если Вы были так склонны ... Тогда просто назовите этот «extip» по имени где угодно, вам будет предложено ввести пароль, и все будет хорошо в мире.

alias extip='sudo ./ServiceData/UNIX/bin/extip'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...