Запускать сценарии оболочки из любого места [дубликат]

На этот вопрос уже есть ответ здесь:

Можно ли запускать мои сценарии, расположенные в ~ / scripts откуда угодно?

Скажем, я хочу запустить ./ scriptname независимо от моего текущего рабочего каталога.

9
задан 20 June 2012 в 00:03

3 ответа

Вы можете добавить ~/scripts в переменную окружения $PATH. Затем вы можете запустить scriptname из любого места (но не ./scriptname, потому что ./ обозначает текущий каталог).

Этот ответ показывает, как добавить ~/bin к $PATH, но вы можете сделать то же самое с ~/scripts, конечно.

0
ответ дан 20 June 2012 в 00:03

Добавьте

 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 в вашей консоли.

0
ответ дан 20 June 2012 в 00:03

Два способа:

  • вызывать ваши сценарии оболочки с полным путем вместо ./, например ~/scripts/scriptname
  • добавить папку, содержащую ваши сценарии оболочки, в $PATH переменная окружения и вызовите ваши сценарии оболочки без начального ./, например scriptname
0
ответ дан 20 June 2012 в 00:03

Другие вопросы по тегам:

Похожие вопросы: