На этот вопрос уже есть ответ здесь:
Можно ли запускать мои сценарии, расположенные в ~ / scripts
откуда угодно?
Скажем, я хочу запустить ./ scriptname
независимо от моего текущего рабочего каталога.
Вы можете добавить ~/scripts
в переменную окружения $PATH
. Затем вы можете запустить scriptname
из любого места (но не ./scriptname
, потому что ./
обозначает текущий каталог).
Этот ответ показывает, как добавить ~/bin
к $PATH
, но вы можете сделать то же самое с ~/scripts
, конечно.
Добавьте
export PATH=$PATH:~/scripts
в конец файла ~/.bashrc
. Это позволит вам выполнить ваши скрипты в ~/scripts/
, просто набрав scriptname в bash. Вам нужно выйти из системы, чтобы она работала в вашем сеансе (вы можете протестировать сценарии, открыв новый терминал).
Я обычно добавляю
export PATH=$PATH:~/bin
к своему пути и затем создаю символические ссылки на скрипты, программы, которые я хочу иметь в своем сеансе.
cd ~/bin
ln -s ~/Tools/eclipse3.7/eclipse
# which will create a symlink in ~/bin/ with the name eclipse
# pointing to ~/Tools/eclipse3.7/eclipse which allows me to execute
# the eclipse in ~/Tools/eclipse3.7/
Обратите внимание, что файлы путей имеют приоритет. Если я уже установил Eclipse через Ubuntu, он сначала будет искать Eclipse во всех других местах, чем в ~/bin/
. Если вы хотите изменить это поведение, просто экспортируйте каталог наоборот:
export PATH=~/bin:$PATH
Убедитесь, что скрипты в вашем каталоге скриптов исполняемы, иначе экспорт не будет иметь эффекта.
Вы можете посмотреть доступные пути, набрав
echo $PATH
Если вы хотите увидеть все переменные окружения, наберите env
в вашей консоли.
Два способа:
./
, например ~/scripts/scriptname
$PATH
переменная окружения и вызовите ваши сценарии оболочки без начального ./
, например scriptname