Поиск по сайту:
Анархия всегда приводит к абсолютизму (Наполеон I).

Создайте и запустите свой первый скрипт Bash Shell

30.06.2020
Bash Heredoc

Сделайте первый шаг к созданию сценариев оболочки. Узнайте, что нужно для создания простого bash-скрипта и как его запустить.

Если вам нужно сделать это более одного раза, автоматизируйте это!

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

Автоматизация задачи — один из многих полезных сценариев, в которых вы можете использовать возможности сценариев bash.

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

 

Создайте и запустите свой первый скрипт оболочки

Давайте сначала создадим новый каталог с именем scripts, который будет содержать все наши скрипты bash.

mkdir scripts
cd scripts

 

Теперь внутри этого «каталога скриптов» создайте новый файл с именем hello.sh с помощью команды cat:

cat > hello.sh

 

Вставьте в него следующую строку, набрав ее в терминале:

echo 'Hello, World!'

 

Нажмите Ctrl + D, чтобы сохранить текст в файл и выйти из команды cat.

Вы также можете использовать текстовый редактор на основе терминала, такой как Vim, Emacs или Nano. Если вы используете настольный Linux, вы также можете использовать графический текстовый редактор, такой как Gedit, чтобы добавить текст в этот файл.

Читать  Как установить и использовать переменные окружения в Bash-скрипте

Итак, в основном вы используете команду echo для вывода «Hello World». Вы можете использовать эту команду непосредственно в терминале, но в этом тесте вы запустите эту команду через скрипт оболочки.

Теперь сделайте файл hello.sh исполняемым с помощью команды chmod следующим образом:

chmod u+x hello.sh

 

И наконец, запустите ваш первый скрипт оболочки, добавив hello.sh желаемую оболочку «bash»:

bash hello.sh

 

Вы увидите Hello, World!, напечатанные на экране. Возможно, это была самая легкая программа Hello World, которую вы когда-либо писали, верно?

 

Конвертируйте ваш скрипт в bash

Bash означает “Bourne-Again shell”, — это всего лишь одна из многих доступных оболочек в Linux.

Оболочка — это интерпретатор командной строки, который принимает и запускает команды. Если вы когда-либо запускали какую-либо команду Linux раньше, то вы использовали оболочку. Когда вы открываете терминал в Linux, вы уже используете оболочку по умолчанию вашей системы.

Bash часто является оболочкой по умолчанию в большинстве дистрибутивов Linux. Вот почему bash часто является синонимом оболочки.

Сценарии оболочки часто имеют почти одинаковые синтаксисы, но иногда они также различаются. Например, индекс массива начинается с 1 в Zsh вместо 0 в bash. Скрипт, написанный для оболочки Zsh , не будет работать так же в bash, если у него есть массивы.

Чтобы избежать неприятных сюрпризов, вы должны сообщить интерпретатору, что ваш сценарий оболочки написан для оболочки bash.

Читать  Устранение проблем с твердотельным накопителем NVME в Linux

 

Строка SheBang в начале сценария оболочки

Строка «#!/Bin/bash» называется строкой shebang, а в некоторых литературах она называется строкой hashbang, и это потому, что она начинается с двух символов хеша «#» и bang «!».

#! /bin/bash

echo 'Hello, World!'

 

Когда вы добавляете строку «#!/Bin/bash» в самом верху вашего скрипта, система знает, что вы хотите использовать bash в качестве интерпретатора для вашего скрипта. Таким образом, вы можете запустить скрипт hello.sh прямо сейчас, не добавляя ему bash.

 

Добавление сценария оболочки в PATH (чтобы его можно было запустить из любого каталога)

Возможно, вы заметили, что мы использовали ./hello.sh для запуска скрипта; вы получите ошибку, если пропустите ведущий ./

destroyer@andreyex:~/scripts$ hello.sh
hello.sh: command not found

 

Bash подумал, что вы пытаетесь запустить команду с именем hello.sh. Когда вы запускаете любую команду на вашем терминале; он ищет эту команду в наборе каталогов, которые хранятся в переменной PATH.

Вы можете использовать echo для просмотра содержимого этой переменной PATH:

echo $PATH
/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

 

Символ двоеточия (:) разделяет путь каждого из каталогов, которые сканирует ваша оболочка при каждом запуске команды.

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

Читать  Интерфейс оболочки Linux для ядра Linux

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

Во-первых, найдите местоположение каталога вашего скрипта (если вы находитесь в том же каталоге), используйте команду PWD:

pwd

 

Используйте команду export, чтобы добавить каталог скриптов в переменную PATH.

export PATH=$PATH:/home/user/scripts

 

Обратите внимание, что мы добавили «каталог скриптов» в самый конец нашей переменной PATH. Так что пользовательский путь ищется после стандартных каталогов.

 

Момент истины здесь, запустите hello.sh:

destroyer@andreyex:~/scripts$ hello.sh
Hello, World!

 

Он работает! Это подводит нас к концу этой статьи. Мы надеемся, что теперь у вас есть некоторое представление о сценариях оболочки.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Знание того, как защитить серверы в Германии от вредоносных программ,…

Спасибо!

Теперь редакторы в курсе.