Bash скрипты в Linux: Урок для новичков

Bash скрипты — обычные файлы, содержащие набор команд, выполняемых последовательно при запуске. Они позволяют автоматизировать задачи в Linux, используя ранее изученные команды (например, ls, cd).

Создание и редактирование Bash скрипта

Создайте новый файл с расширением .sh (например, мой_скрипт.sh) в нужной директории (например, Documents) с помощью текстового редактора (например, Nano).

В начале файла добавьте строку:

#!/bin/bash

Эта строка указывает системе, что файл является Bash скриптом. Без неё скрипт не будет работать.

Написание команд

После этой строки запишите команды, по одной на строке. Например:

#!/bin/bash
ls
mkdir папка
ls
touch папка/yandex.html
tree
echo "Все готово!"

Этот скрипт:

  1. Выводит список файлов в текущей директории (ls).
  2. Создаёт директорию папка (mkdir папка).
  3. Снова выводит список файлов (ls).
  4. Создаёт файл yandex.html в директории папка (touch папка/yandex.html).
  5. Выводит древовидную структуру директорий (tree).
  6. Выводит сообщение «Все готово!» (echo "Все готово!").

Сохраните файл (в Nano: Ctrl+O, затем Enter). Выход из Nano: Ctrl+X.

Выполнение Bash скрипта

Запустите скрипт командой bash, указав имя файла:

bash мой_скрипт.sh

Система выполнит все команды последовательно.

Переменные

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

#!/bin/bash
число=45
строка="Привет"
директория=$(ls)

Для вывода значения используйте echo:

echo "$строка"
echo "$директория"

Используйте двойные кавычки вокруг значения переменной при выводе. Одинарные кавычки могут привести к некорректному отображению. Для имени операционной системы используйте uname -a или переменную $0 (имя скрипта).

Ввод данных

Есть два способа получения данных от пользователя:

1. Параметры при запуске:

Передаваемые параметры доступны через переменные $1, $2 и т.д.

#!/bin/bash
a=$1
b=$2
rez=$((a + b))
echo "$rez"

Запуск: bash мой_скрипт.sh 5 8 (Результат: 13)

2. Команда read:

Команда read считывает данные с клавиатуры:

#!/bin/bash
read -p "Введите число: " num
echo "$num"

Пользователь будет запрошен ввести число.

Условные операторы (if)

Конструкция if:

#!/bin/bash
read -p "Введите число: " num
if [ "$num" -eq 5 ]; then
  ls
elif [ "$num" -gt 10 ]; then
  echo "Число больше 10"
else
  echo "Другое число"
fi
  • -eq — оператор равенства
  • -gt — оператор больше чем
  • fi — закрывает блок if

Циклы (for и while)

Цикл for:

#!/bin/bash
for (( i=1; i<=10; i++ )); do
  echo "Элемент $i"
done

Или:

#!/bin/bash
for i in {2..5}; do
  echo "Элемент $i"
done

Цикл while:

#!/bin/bash
i=0
while [ "$i" -lt 10 ]; do
  echo "Элемент $i"
  i=$((i + 1))
done

Функции

Конструкция для создания функций:

#!/bin/bash
делить() {
  a=$1
  b=$2
  if [ "$b" -eq 0 ]; then
    echo "error"
  else
    rez=$((a / b))
    echo "$rez"
  fi
}

делить 10 2
делить 10 0

Bash скрипты — мощный инструмент для автоматизации задач в Linux. Знание основ работы с переменными, условными операторами, циклами и функциями повысит эффективность работы с системой. Важно правильно использовать пробелы и кавычки.

Что будем искать? Например,программа