Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Расположение файла сценария

После установки разрешений мы можем выполнить наш скрипт:



[я @ linuxbox ~] $ ./Привет, мир

Привет мир!

[я @ linuxbox ~] $ ./Привет, мир

Привет мир!


Для запуска сценария мы должны указать перед именем сценария явный путь. Если мы этого не сделаем, мы получим следующее:



[я @ linuxbox ~] $ Привет, мир

bash: hello_world: команда не найдена

[я @ linuxbox ~] $ Привет, мир

bash: hello_world: команда не найдена


Почему это? Чем наш сценарий отличается от других программ? Оказывается, ничего. Наш сценарий в порядке. Проблема в его местонахождении. Еще в главе 11 мы обсуждали PATH переменная окружения и ее влияние на то, как система ищет исполняемые программы. Напомним, система просматривает список каталогов каждый раз, когда ей нужно найти исполняемую программу, если не указан явный путь. Вот как система знает, как выполнить

/ bin / ls, когда мы вводим ls в командной строке. Каталог / bin - это один из каталогов, в которых система выполняет автоматический поиск. Список каталогов хранится в переменной среды с именем PATH. Переменная PATH содержит список каталогов для поиска, разделенных двоеточиями. Мы можем просмотреть содержимое PATH:

Расположение файла сценария


[я @ linuxbox ~] $ echo $ PATH

/ домашний / меня / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin:

/ bin: / usr / игры

[я @ linuxbox ~] $ echo $ PATH

/ домашний / меня / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin:

/ bin: / usr / игры


Здесь мы видим наш список каталогов. Если бы наш скрипт находился в любом из каталогов в списке, наша проблема была бы решена. Обратите внимание на первый каталог в списке,

/ домой / меня / бен. Большинство дистрибутивов Linux настраивают переменную PATH так, чтобы она содержала каталог bin в домашнем каталоге пользователя, чтобы пользователи могли выполнять свои собственные программы. Итак, если мы создадим каталог bin и поместим в него наш скрипт, он должен начать работать, как и другие программы:



[я @ linuxbox ~] $ мкдир бин [я @ linuxbox ~] $ мв hello_world бен [я @ linuxbox ~] $ Привет, мир

Привет мир!

[я @ linuxbox ~] $ мкдир бин [я @ linuxbox ~] $ мв hello_world бен [я @ linuxbox ~] $ Привет, мир

Привет мир!


Так оно и есть.

Если же линия индикатора PATH переменная не содержит каталог, мы можем легко добавить ее, включив эту строку в нашу .bashrc файл:


экспорт ПУТЬ = ~ / bin: "$ ПУТЬ"

экспорт ПУТЬ = ~ / bin: "$ ПУТЬ"


После внесения этого изменения оно вступит в силу в каждом новом сеансе терминала. Чтобы применить изменение к текущему сеансу терминала, мы должны заставить оболочку перечитать .bashrc файл. Это может быть сделано путем «поиска»:



[я @ linuxbox ~] $ . .bashrc

[я @ linuxbox ~] $ . .bashrc


Точка (.) является синонимом источник command, встроенная оболочка, которая читает указанный файл команд оболочки и обрабатывает его как ввод с клавиатуры.


изображение

Примечание: Ubuntu (и большинство других дистрибутивов на основе Debian) автоматически добавляет

Каталог ~ / bin в переменную PATH, если каталог ~ / bin существует при выполнении файла .bashrc пользователя. Итак, в системах Ubuntu, если мы создадим каталог ~ / bin, а затем выйдем из системы и снова войдем в систему, все будет работать.


изображение


 

Лучшие облачные вычисления для ОС в OnWorks: