скажем, у меня есть сценарий.
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 .