Как написать базовый сценарий оболочки

Узнайте, как написать базовый сценарий оболочки Bash. Хотя сценарии оболочки могут быть длинными, сложными сценариями, выполняющими сложные задачи, вы также можете научиться писать простой сценарий оболочки за 10 минут. Если вы умеете выполнять команды в командной строке, то научиться писать базовый сценарий Bash не составит труда.

Требования

  • Облачный сервер под управлением Linux
  • Базовое знакомство с командной строкой

Создайте файл

Перейдите в свой домашний каталог:

cd
Примечание

Использование cd без каких-либо аргументов автоматически приведет вас в ваш домашний каталог.

Создайте каталог для тестовых скриптов:

mkdir myscripts

Перейдите в этот каталог:

cd myscripts

Создайте файл с именем myscript.sh и откройте его для редактирования:

nano hello

Первая строка любого сценария оболочки должна быть #!, за которой следует путь к оболочке, которую вы хотите использовать для сценария.

Поскольку мы будем писать этот сценарий для оболочки Bash, первой строкой файла будет #!

#!/bin/bash

Любая другая строка, начинающаяся с хэш-знака #, будет проигнорирована скриптом. Это позволит вам добавлять комментарии и заметки к вашему скрипту. После первой строки хорошо добавить несколько комментариев о цели сценария:

# A test script

Добавьте команду(ы) и сделайте ее исполняемой

Любую команду, которую вы выполняете из командной строки, можно поместить в сценарий оболочки. Это удобно для:

  • Команды, которые вы часто используете.
  • Длинных команд, особенно тех, которые используют много флагов.
  • Команды, которые вы хотите, чтобы сервер выполнял автоматически, как задание cron.
  • Команды, которые вы никогда не можете запомнить, и вам приходится каждый раз их искать.

Для этого примера мы будем использовать команду, которая выводит в командную строку слова «Hello world». Поместите в файл следующее:

echo "Hello world"

Сохраните и выйдите из файла.

Для запуска скрипт должен быть исполняемым. Дайте скрипту исполняемые права с помощью команды:

chmod 755 hello

Run the script

Чтобы запустить скрипт, просто вызовите его по пути к файлу. Поскольку вы находитесь в том же каталоге, что и скрипт, вы можете запустить его отсюда, набрав:

./hello

Вы можете запустить скрипт из любого места на сервере, набрав полный путь к файлу:

/home/[your username]/myscripts/hello

Добавьте скрипт в PATH

В отличие от сценария оболочки, большинство команд Linux не требуют ввода полного пути к файлу каждый раз, когда вы хотите их запустить. Это происходит потому, что эти скрипты находятся в вашем PATH.

PATH — это список каталогов, которые оболочка проверяет на наличие команды каждый раз, когда вы ее вводите. Вы можете посмотреть свой PATH с помощью команды:

echo $PATH

Это выведет список каталогов, которые находятся в вашем PATH:

jdoe@localhost:~$ echo $PATH
/home/jdoe/bin:/home/jdoe/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Есть два способа добавить сценарий оболочки в PATH:

1. Переместить сценарий оболочки в каталог, который уже находится в PATH.

Вы можете переместить сценарий оболочки в любую из директорий, которые перечислены в ответ на команду echo $PATH. Лучше всего помещать свои личные сценарии оболочки в каталог /usr/local/bin:

sudo mv hello /usr/local/bin

Затем вы можете запустить сценарий из любого места с помощью команды:

hello

2. Добавьте каталог сценария оболочки в PATH

Вы можете добавить любой каталог в PATH с помощью команды:

export PATH=$PATH:[path to directory]

Например, если пользователь jdoe хочет добавить каталог /home/jdoe/myscripts в PATH, команда будет следующей:

export PATH=$PATH:/home/jdoe/myscripts

Затем вы можете запустить скрипт из любого места с помощью команды:

hello

Использование ввода и переменных

Ваши скрипты могут использовать переменные, и вы можете запрашивать ввод у пользователя. Это создает интерактивный сценарий, который позволяет вам предоставлять ему новую информацию при каждом запуске.

Давайте начнем с создания нового файла с именем greetme и откроем его для редактирования:

nano greetme

Как и раньше, убедитесь, что первая строка скрипта — это путь к оболочке:

#!/bin/bash

Добавьте комментарий:

# A simple script to experiment with user input

Первая строка сценария будет тем, что сценарий говорит, когда вы его вызываете:

echo -e "Hello user, please tell me which state you live in: "
Примечание

Мы используем для этого echo -e, потому что -e позволяет команде обрабатывать специальные символы.

Следующая строка указывает скрипту, что он должен принять ваш ввод через приглашение:

read state

Последняя строка — это ответ скрипта:

echo "I have heard that $state is lovely this time of year."

Весь сценарий выглядит следующим образом:

#!/bin/bash
# A simple script to experiment with user input

echo -e "Hello user, please tell me which state you live in: "
read state
echo "I have heard that $state is lovely this time of year."

Сохраните и выйдите из файла. Затем сделайте его исполняемым с помощью команды:

chmod 755 greetme

Теперь вы можете запустить файл и посмотреть результаты:

jdoe@localhost:~/myscripts$ greetme
Hello user, please tell me which state you live in:
California
I have heard that California is lovely this time of year.

Оцените статью
cdelat.ru
Добавить комментарий