#linux #ubuntu #shell
Можно ли сделать так, чтобы не пришлось указывать путь к скрипту, а просто написать его название в терминале и он вызывался? Пример Сейчас надо делать так: sh home/user/test.sh Хочу вызывать так: test
Ответы
Ответ 1
довольно удобным решением может быть создание каталога с именем, например, bin, внутри своего домашнего каталога: $ mkdir ~/bin чтобы можно было запускать исполняемые файлы из этого каталога по имени, достаточно добавить путь к нему в переменную окружения $PATH: export PATH=~/bin:$PATH эту команду, чтобы не выполнять её в каждом экземпляре оболочки вручную, можно дописать в конец вашего персонального инициализационного файла оболочки, который носит название .shellrc, где shell — имя используемой вами оболочки (его можно узнать, например, командой echo $SHELL). для bash это будет: ~/.bashrc для zsh: ~/.zshrc и т.п. стоит заметить, что довольно часто производить последнюю манипуляцию нет необходимости: при наличии каталога ~/bin инициализационные скрипты оболочки автоматически добавят его в переменную окружения $PATH (см., например, содержимое файла ~/.profile). проверить просто: создайте каталог, запустите новый процесс оболочки и проверьте содержимое переменной (echo $PATH). нужный вам файл надо скопировать в этот каталог под желаемым именем (имя test, кстати, не совсем удачное, так как совпадает с именем встроенной команды оболочки): $ cp ~/test.sh ~/bin/test и присвоить бит исполнимости: $ chmod +x ~/bin/test в случае, если это скрипт, требующий обработки каким-нибудь интерпретатором (в вашем случае интерпретатором /bin/sh), то первой строкой скрипта должен быть так называемый shebang, содержащий полный путь к программе-интерпретатору: #!/bin/shОтвет 2
Можно добавить директорию, где лежит скрипт, в $PATH: .bashrc export PATH=$PATH:~/path/to/dir Или создать алиас: .bash_aliases alias test='/path/to/dir/test.sh' Расширение .sh необязательно, главное чтобы был шебанг: #!/bin/sh echo "Test"
Комментариев нет:
Отправить комментарий