Bash Scripting позволяет автоматизировать много ваших задач в системах Linux и Unix. Bash объединяет мощность команд Linux и инструментов с мощным и надежным языком сценариев.
Bash широко доступен в различных операционных системах. Во многих случаях Bash также является интерпретатором команды по умолчанию в большинстве систем Linux.
В этой статье я покажу вам, как написать ваш первый сценарий Bash!
Перед началом работы вам понадобится терминал Bash и текстовый редактор.
Я буду использовать капель Ubuntu, развернутую на DigitaloCean. Если вы хотите следовать, вы можете зарегистрироваться в DigitaloCean через мою реферальную ссылку ниже, и вы получите $ 100 БЕСПЛАТНЫЙ цифровой кредит :
Бесплатный цифровой кредит за 100 долларов США
Например, мы напишем сценарий, который соберет некоторую полезную информацию о нашем сервере, как:
- Текущее использование диска
- Текущее использование процессора
- Текущее использование RAM
- Проверьте точную версию ядра
Не стесняйтесь корректировать скрипт, добавляя или удаляя функциональность, чтобы он соответствовал вашим потребностям.
Первое, что вам нужно сделать, это создать новый файл с .sh расширение. Я создам файл с именем status.sh Поскольку сценарий, который мы создадим, даст нам статус нашего сервера.
После того, как вы создали файл, откройте его своим любимым текстовым редактором.
На самой первой строке нашего сценария Bash нам нужно указать так называемый Шебанг :
#!/bin/bash
Все, что делает Шебанг, это инструктировать операционную систему запустить сценарий с помощью исполняемого файла/bin/bash.
Добавление комментариев
Давайте начнем с добавления некоторых комментариев, чтобы люди могли легко выяснить, для чего используется скрипт. Чтобы сделать это сразу после шебанга, вы можете просто добавить следующее:
#!/bin/bash # Script that returns the current server status
Добавление вашей первой переменной
Затем давайте продолжим и добавим некоторые переменные, которые мы могли бы использовать на протяжении всего сценария.
Чтобы присвоить значение переменной в Bash, вам просто нужно использовать знак равно знак. Например, давайте сохраним имя хоста нашего сервера в переменной, чтобы мы могли использовать его позже:
server_name=$(hostname)
С помощью $ () Мы говорим Bash фактически интерпретировать команду, а затем присвоить значение нашей переменной.
Теперь, если бы мы повторили переменную, мы бы увидели текущее имя хоста:
echo $server_name
Добавление вашей первой функции
Чтобы создать функцию в Bash, вам нужно использовать следующую структуру:
function function_name() {
your_commands
}
Давайте создадим функцию, которая возвращает текущее использование памяти на нашем сервере:
function memory_check() {
echo ""
echo "The current memory usage on ${server_name} is: "
free -h
echo ""
}
Быстрый запуск функции:
function memory_check () {— Так мы определяем функциюЭхо ""— Здесь мы просто печатаем новую линиюEcho "Текущее использование памяти на $ {server_name}:"— Здесь мы печатаем все маленькое сообщение и$ server_nameпеременная}— Наконец, так мы закрываем функцию
Затем, как только функция была определена, чтобы назвать ее, просто используйте имя функции:
# Define the function
function memory_check() {
echo ""
echo "The current memory usage on ${server_name} is: "
free -h
echo ""
}
# Call the function
memory_check
Добавление дополнительных функций задачи
Прежде чем проверить решение, я бы бросил вам вызов использовать функцию сверху и написать несколько функций самостоятельно.
Функции должны выполнять следующее:
- Текущее использование диска
- Текущее использование процессора
- Текущее использование RAM
- Проверьте точную версию ядра
Не стесняйтесь использовать Google, если вы не уверены, какие команды вам нужно использовать, чтобы получить эту информацию.
Как только вы будете готовы, не стесняйтесь прокручивать вниз и проверить, как мы это сделали, и сравните результаты!
Обратите внимание, что есть несколько правильных способов сделать это!
Вот как будет выглядеть конечный результат:
#!/bin/bash
##
# BASH script that checks:
# - Memory usage
# - CPU load
# - Number of TCP connections
# - Kernel version
##
server_name=$(hostname)
function memory_check() {
echo ""
echo "Memory usage on ${server_name} is: "
free -h
echo ""
}
function cpu_check() {
echo ""
echo "CPU load on ${server_name} is: "
echo ""
uptime
echo ""
}
function tcp_check() {
echo ""
echo "TCP connections on ${server_name}: "
echo ""
cat /proc/net/tcp | wc -l
echo ""
}
function kernel_check() {
echo ""
echo "Kernel version on ${server_name} is: "
echo ""
uname -r
echo ""
}
function all_checks() {
memory_check
cpu_check
tcp_check
kernel_check
}
all_checks
Чтобы отлаживать свои сценарии Bash, вы можете использовать -x при выполнении своих сценариев:
bash -x ./your_script.sh
Или вы можете добавить SET -x Перед конкретной строкой, которую вы хотите отладить, SET -x включает режим оболочки, где все выполненные команды печатаются на терминал.
Еще один способ проверить свои сценарии — использовать этот фантастический инструмент здесь:
https://www.shellcheck.net/
Просто скопируйте и вставьте свой код в текстовое поле, и инструмент даст вам несколько предложений о том, как вы можете улучшить свой скрипт.
Бэш сценариев потрясающий! Независимо от того, являетесь ли вы инженером DevOps/Sysops, разработчиком или просто энтузиастом Linux, вы можете использовать сценарии Bash, чтобы объединить различные команды Linux и автоматизировать скучные и повторяющиеся ежедневные задачи, чтобы вы могли сосредоточиться на более продуктивных и забавных вещах!
Чтобы узнать больше о Bash, вы можете взглянуть на следующую электронную книгу Bash здесь:
Введение в электронную книгу сценариев Bash
Не стесняйтесь поделиться своим скриптом со мной, отметив меня в Twitter: @bobbyiliev_
Оригинал: «https://dev.to/bobbyiliev/how-to-write-your-first-bash-script-5667»