-
Перейдите в каталог ваших скриптов.
Убедитесь, что вы находитесь в каталоге ~/project/scripts.
cd ~/project/scripts
-
Создайте новый скрипт для получения имени хоста.
Вы создадите скрипт с именем get_hostnames.sh, который содержит цикл for для получения информации об имени хоста, используя разные опции.
Откройте get_hostnames.sh с помощью nano:
nano get_hostnames.sh
Добавьте следующее содержимое в файл:
#!/usr/bin/bash
## This script retrieves hostname information using different options.
for OPTION in "" "-f" "-s"; do
echo "Getting hostname with option: ${OPTION}"
hostname ${OPTION}
echo "------------------------"
done
exit 0
Сохраните файл, нажав Ctrl+O, затем Enter, и Ctrl+X для выхода из nano.
Давайте разберем новые элементы:
## This script...: Строки, начинающиеся с #, являются комментариями. Они игнорируются оболочкой, но полезны для документирования вашего скрипта.
echo "Getting hostname with option: ${OPTION}": Эта строка предоставляет обратную связь во время выполнения скрипта, указывая, какая опция в данный момент используется.
exit 0: Эта команда явно завершает скрипт с кодом состояния 0, который обычно указывает на успех.
-
Сделайте скрипт исполняемым.
Как и на предыдущем шаге, вам нужно предоставить вашему новому скрипту права на выполнение.
chmod +x get_hostnames.sh
Прямого вывода от этой команды не будет, если она выполнена успешно.
-
Выполните скрипт из текущего каталога.
Запустите скрипт, чтобы проверить его функциональность.
./get_hostnames.sh
Вы должны увидеть вывод, похожий на этот:
Getting hostname with option:
684791f71c0e35fea6cc1243
------------------------
Getting hostname with option: -f
684791f71c0e35fea6cc1243
------------------------
Getting hostname with option: -s
684791f71c0e35fea6cc1243
------------------------
-
Понимание переменной окружения PATH.
Переменная окружения PATH — это список каталогов, в которых оболочка ищет исполняемые команды. Когда вы вводите команду, например ls или grep, оболочка ищет в каталогах, перечисленных в PATH, чтобы найти соответствующий исполняемый файл.
Отобразите вашу текущую переменную PATH:
echo $PATH
Вы увидите список каталогов, разделенных двоеточиями. Например:
/home/labex/.local/bin:/home/labex/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
Обратите внимание, что ~/project/scripts (или /home/labex/project/scripts) обычно не включается в PATH по умолчанию. Вот почему вам пришлось использовать ./get_hostnames.sh для выполнения вашего скрипта.
-
Добавление каталога ваших скриптов в PATH (Необязательно, для справки в будущем).
Хотя это не строго обязательно для этого шага лабораторной работы, общепринятой практикой является добавление личного каталога bin или scripts в ваш PATH, чтобы вы могли запускать свои собственные скрипты из любого места. Вы можете сделать это, добавив строку, например export PATH=$PATH:~/project/scripts, в ваш файл ~/.bashrc или ~/.zshrc. Для этой лабораторной работы мы продолжим выполнять скрипты, указывая их путь.