скажем, у меня есть сценарий.
chmod +x myscript
Теперь, чтобы запустить это я иду
./myscript
Но есть ли способ, которым я мог бы просто запустить его, набрав
myscript
???
У меня была такая же проблема, и, кажется, до сих пор нет ответа четко отвечает на вопрос.
Решением этого вопроса является добавление export PATH=.:$PATH
в ваш файл .bash_profile
. Это будет включать текущий каталог в путь поиска Unix, пока он ищет команду. Также целесообразно, чтобы вы были проинформированы о рисках безопасности, связанных с этим.
добавьте путь к каталогу, в котором находится ваш скрипт, в переменную PATH:
export PATH=$PATH:/path/to/directory
export PATH=/path_to_folder_containing_executable/:$PATH
Если вы не хотите запускать его каждый раз, когда открываете новый терминал, вы всегда можете добавить эту строку в ваш ~/.bashrc
.
Удачи!
создать символическую ссылку на файл скрипта в любом /bin /, /usr /bin и т. д.
ln -s /path_to_script/myscript /usr/bin/myscript
Поместите скрипт в ~/bin
, каталог bin
в вашем домашнем каталоге. Затем проверьте, что ~/bin
добавлен в вашу PATH
. Это может быть уже (хотя вам, возможно, придется выйти и снова войти).
Вы можете изменить свой PATH, чтобы включить .
Но это опасно. Это может привести к проблемам с безопасностью. НАПРИМЕР
Самый очевидный.
Если вы установите PATH для просмотра .
первый: затем , если директория имеет исполняемый файл , файл a
, что делает что - то плохое. Затем вы набираете ls
Затем происходит что-то плохое.
Я могу вспомнить только удобный случай.
Если вы установите PATH для просмотра .
последнее: затем вы создаете программу под названием test
, когда вы запускаете ее, кажется, ничего не происходит (это потому, что она запускает test
с более высоким приоритетом и не имеет вывода, только код выхода). Также может быть проблема, если новое программное обеспечение установлено, это новое программное обеспечение может маскировать вашу программу (хотя это не отличается от наличия ~/bin
в конце PATH).
У меня есть каталоги в моем доме: ~/bin
в конце PATH и ~/bin/override
в начале PATH. ~/bin/override` в основном пуст.
Все остальные ответы, опубликованные до этого, являются правильными. (Хотя те, которые не упоминают ~/.bashrc
являются неполными в этом отношении.)
Но, если вы предпочитаете не использовать их, вот альтернатива:
Тип:
alias myscript="/path_to_folder_containing_executable/myscript"
или же
myscript() { /path_to_folder_containing_executable/myscript "$@"; }
Второй (который называется "функция оболочки") может быть напечатан
myscript() {
/path_to_folder_containing_executable/myscript "$@"
}
Если вы предпочитаете. Все они определяют myscript
как специальный тип команды, которая проверяется перед тем, как оболочка смотрит на $PATH
.
Как и команды export
в других ответах, они влияют только на текущий сеанс оболочки.
Чтобы сделать эффект постоянным, поместите команду в ~/.bashrc
.