Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

Розташування файлу сценарію

Тепер із встановленими дозволами ми можемо виконати наш сценарій:



[me@linuxbox ~]$ ./Привіт Світ

Привіт Світ!

[me@linuxbox ~]$ ./Привіт Світ

Привіт Світ!


Щоб сценарій запустився, ми повинні перед назвою сценарію вказати явний шлях. Якщо ми цього не зробимо, ми отримаємо це:



[me@linuxbox ~]$ Привіт Світ

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

[me@linuxbox ~]$ Привіт Світ

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


Чому це? Чим наш скрипт відрізняється від інших програм? Як виявилося, нічого. Наш сценарій в порядку. Проблема в його місці. Ще в розділі 11 ми обговорювали PATH змінна середовища та її вплив на те, як система шукає виконувані програми. Підсумовуючи, система шукає список каталогів кожного разу, коли їй потрібно знайти виконувану програму, якщо не вказано явний шлях. Це те, як система знає, що потрібно виконувати

/bin/ls, коли ми вводимо ls у командному рядку. Каталог /bin є одним із каталогів, які система автоматично шукає. Список каталогів міститься в змінній середовища з назвою PATH. Змінна PATH містить розділений двокрапками список каталогів, у яких потрібно шукати. Ми можемо переглянути вміст PATH:

Розташування файлу сценарію


[me@linuxbox ~]$ echo $PATH

/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:

/bin:/usr/games

[me@linuxbox ~]$ echo $PATH

/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:

/bin:/usr/games


Тут ми бачимо наш список каталогів. Якби наш сценарій знаходився в будь-якому з каталогів у списку, наша проблема була б вирішена. Зверніть увагу на перший каталог у списку,

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



[me@linuxbox ~]$ mkdir bin [me@linuxbox ~]$ mv hello_world bin [me@linuxbox ~]$ Привіт Світ

Привіт Світ!

[me@linuxbox ~]$ mkdir bin [me@linuxbox ~]$ mv hello_world bin [me@linuxbox ~]$ Привіт Світ

Привіт Світ!


Так і відбувається.

Якщо PATH змінна не містить каталогу, ми можемо легко додати її, включивши цей рядок у наш .bashrc Файл:


експорт PATH=~/bin:"$PATH"

експорт PATH=~/bin:"$PATH"


Після внесення цієї зміни вона набуде чинності в кожному новому термінальному сеансі. Щоб застосувати зміни до поточного термінального сеансу, ми повинні перечитати оболонку .bashrc файл. Це можна зробити, «вибравши» його:



[me@linuxbox ~]$ . .bashrc

[me@linuxbox ~]$ . .bashrc


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


зображення

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

каталог ~/bin до змінної PATH, якщо каталог ~/bin існує під час виконання файлу користувача .bashrc. Отже, у системах Ubuntu, якщо ми створюємо каталог ~/bin, а потім виходимо з системи та входимо знову, все працює.


зображення


 

Найпопулярніші хмарні обчислення ОС на OnWorks: