Пошаговое руководство по созданию скрипта оболочки в Linux

watch 1m, 2s
views 2

10:05, 05.06.2026

Содержание статьи
arrow

  • Написание скрипта оболочки
  • Добавление комментариев в скрипт оболочки
  • Работа с переменными в скриптах оболочки
  • Указание интерпретатора скрипта оболочки
  • Использование операторов сравнения
  • Сравнение целочисленных значений 
  • Сравнение целых чисел
  • Сравнение строк в скриптах оболочки 
  • Сравнение строк
  • Реализация условных операторов  
  • Использование оператора if
  • Реализация логики If-Else
  • Понимание циклов в скриптах оболочки
  • Цикл While
  • Цикл For
  • Обработка позиционных аргументов в скриптах
  • Перехват и сохранение результатов команд
  • Понимание кодов завершения в командах оболочки

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

Написание скрипта оболочки

Чтобы создать скрипт оболочки, откройте любой текстовый редактор, например nano, vim или gedit

Введите свои команды и сохраните файл с расширением .sh.

Пример:

#!/bin/bash
echo "Hello, World!"

Чтобы сделать скрипт исполняемым, воспользуйтесь этой командой:

chmod +x myscript.sh

Затем запустите его:

./myscript.sh

Добавление комментариев в скрипт оболочки

Комментарии помогают объяснить ваш код. В скриптах оболочки комментарии начинаются с #.

Пример:

# Это комментарий
echo "Запуск скрипта..."

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

Работа с переменными в скриптах оболочки

Переменные хранят значения, которые вы можете использовать повторно.

Пример:

name="Alice"
echo "Hello, $name"

Нет необходимости объявлять тип. Вы можете напрямую присваивать значение переменной и использовать её.

Указание интерпретатора скрипта оболочки

Первая строка в скрипте оболочки называется shebang. Она указывает системе, какой интерпретатор использовать.

Пример:

#!/bin/bash

Всегда включайте эту строку в начале вашего скрипта, чтобы он работал должным образом.

Использование операторов сравнения

Операторы сравнения позволяют сравнивать значения, что полезно для принятия решений в скриптах.

Сравнение целочисленных значений 

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

Сравнение целых чисел

Оператор

Описание

-eq

равно

-ne

не равно

-gt

больше

-ge

больше или равно

-lt

меньше

-le

меньше или равно



Пример:

a=10
b=5
if [ $a -gt $b ]; then
  echo "$a больше $b"
fi

Сравнение строк в скриптах оболочки 

Для сравнения текстовых значений (строк) используйте следующие операторы:

Сравнение строк

Оператор

Описание

==

равно

!=

не равно

\<

меньше, в алфавитном порядке ASCII

\>

больше, в алфавитном порядке ASCII

Пример:

str1="apple"
str2="banana"
if [ "$str1" \< "$str2" ]; then
  echo "$str1 идет перед $str2 по алфавиту"
fi

Реализация условных операторов  

Условные операторы позволяют скрипту выбирать, что делать, на основе условия.

Использование оператора if

Оператор if проверяет условие и выполняет команды, если оно выполняется.

Пример:

if [ -e myfile.txt ]; then
  echo "Файл существует"
fi

Реализация логики If-Else

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

Пример:

if [ -d myfolder ]; then
  echo "Папка существует"
else
  echo "Папка не существует"
fi

Вы также можете использовать elif для дополнительных условий:

if [ $a -gt $b ]; then
  echo "A больше"
elif [ $a -eq $b ]; then
  echo "A равно"
else
  echo "A меньше"
fi

Понимание циклов в скриптах оболочки

Циклы позволяют повторять команды несколько раз. Существует два распространенных цикла: while и for.

Цикл While

Цикл while выполняется, пока условие истинно.

Пример:

count=1
while [ $count -le 5 ]; do
  echo "Count is $count"
  ((count++))
done

Цикл For

Цикл for проходит по списку или диапазону.

Пример:

for i in 1 2 3 4 5; do
  echo "Число: $i"
done
Вы также можете проходить по файлам:
for file in *.txt; do
  echo "Найден файл: $file"
done

Обработка позиционных аргументов в скриптах

Скрипты оболочки могут принимать аргументы из командной строки.

Пример:

#!/bin/bash
echo "Имя скрипта: $0"
echo "Первый аргумент: $1"
echo "Второй аргумент: $2"

Запустите скрипт:

./myscript.sh hello world

Вывод:

Имя скрипта: ./myscript.sh
Первый аргумент: hello
Второй аргумент: world

Перехват и сохранение результатов команд

Вы можете сохранить результат команды, используя $(command).

Пример:

current_date=$(date)
echo "Сегодня $current_date"

Это сохраняет выходные данные date в переменной.

Понимание кодов завершения в командах оболочки

Каждая команда возвращает код завершения. Вы можете проверить его с помощью $?.

  • 0 означает успех.
  • Любое другое значение означает, что произошла ошибка.

Пример:

ls /notfound
if [ $? -ne 0 ]; then
  echo "Каталог не найден"
fi

Это помогает выявлять ошибки в скриптах.

Поделиться

Была ли эта статья полезной для вас?

Популярные предложения VPS

-10.1%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
200 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 8192 Linux

£ 17.8

£

При оплате за год

-15.3%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
75 GB SSD
Bandwidth
Bandwidth
40 Mbps
DDoS Protected SSD-wKVM 2048 Windows

£ 46.71

£

При оплате за год

-7.9%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
200 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 8192 Windows

£ 22.43

£

При оплате за год

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 4096 Linux

£ 10.44

£

При оплате за год

-5%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 1024 Windows

£ 10.46

£

При оплате за год

-9.3%

CPU
CPU
6 Epyc Cores
RAM
RAM
16 GB
Space
Space
150 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 16384 Windows

£ 47.13

£

При оплате за год

-18.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
75 GB SSD
Bandwidth
Bandwidth
2 TB
wKVM-SSD 2048 Metered Windows

£ 20.76

£

При оплате за год

-21.5%

CPU
CPU
2 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
300 GB
wKVM-SSD 4096 HK Windows

£ 34.6

£

При оплате за год

-10%

CPU
CPU
10 Xeon Cores
RAM
RAM
64 GB
Space
Space
300 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 65536 Linux

£ 116.75

£

При оплате за год

-9.5%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 32768 Windows

£ 63.99

£

При оплате за год

Другие статьи на эту тему

cookie

Принять файлы cookie и политику конфиденциальности?

Мы используем файлы cookie, чтобы обеспечить вам наилучший опыт работы на нашем сайте. Если вы продолжите работу без изменения настроек, мы будем считать, что вы согласны получать все файлы cookie на сайте HostZealot.