Перейти до вмісту

Bash

Матеріал з K2 ERP Wiki

set -euo pipefail

!; -name "config.yml"

echo "Name is not empty"

</syntaxhighlight> !; Змінна

<syntaxhighlight lang="bash">
shellcheck script.sh
'''ssh''' застосовується для підключення до сервера.; Приклад:
як ілюстрація, вручну можна виконати:

database="erp_database"

!; Вираз

Команда з sudo має змогу змінити систему.; -d "$directory" ]; then

== Порівняння чисел ==
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">

env

./hello.sh
count=15
fi

<syntaxhighlight lang="bash">

Перевірка файлів і каталогів

set -euo pipefail
echo "Database backup created"

== awk ==

if [ "$age" -ge 18 ]; then

bash install.sh

set -euo pipefail
git add .; Її треба виконувати тільки коли зрозуміло, що саме вона робить.'''

Клонування:

</syntaxhighlight> !; npm install </syntaxhighlight> }

</syntaxhighlight>

Пошук у файлі:

  1. Це коментар

</syntaxhighlight> </syntaxhighlight>

if check_file "config.yml"; then

echo "Hello from Bash script"

sudo apt update fi Більш переносимий варіант: </syntaxhighlight>

less install.sh

Процеси

echo "New line" >> hello.txt Bash є собою розвитком класичної оболонки sh і став однією з найпоширеніших shell-оболонок у світі Unix/Linux.; Пояснення

say_hello curl https://example.com/install.sh | bash say_hello() {

</syntaxhighlight>

Приклади:

Redirect

xargs створює команди з вхідних даних.; Оператор

chmod +x hello.sh

command -v bash

Головна ідея Bash

!; Значення

grep -n "error" app.log

composer install
Або:
echo "$name"

Приклад:

bash --version

sed

</syntaxhighlight> set -euo pipefail

!; Значення

cat app.log | grep "error"
echo "$filename"
 echo "Config missing"
 echo "Hello"
 exit 1

grep "error" app.log

sed 's/old/new/g' file.txt pip install -r requirements.txt Розпакувати архів:
!; Вивести рядки з 10 по 20:
<syntaxhighlight lang="bash">
{| class="wikitable sortable"

<syntaxhighlight lang="bash">

b=7

Правильно:
<syntaxhighlight lang="bash">
command || echo "Command failed"

Дізнатися шлях до Bash:

<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Перевірити код останньої команди:

mkdir build && cd build

Команда <code>echo</code> виводить текст у консоль.; Значення

Типові помилки новачків

Приклад для Python:

Робота з файлами

</syntaxhighlight>

;</syntaxhighlight> Створити каталог:
Складність великих скриптів Bash погано підходить для великих програм
Проблеми з quoting Пробіли й спецсимволи часто створюють помилки
Слабка типізація Усе здебільшого є собою текстом
Небезпечні команди Помилка має змогу видалити або змінити важливі файли
Погана читабельність складної логіки Для складних задач краще Python, Go або інша мова
Різниця між sh і bash Bash-скрипт має змогу не працювати в sh

Приклад перевірки місця на диску:

-H "Content-Type: application/json" \ </syntaxhighlight>

|-
| '''Не ставити лапки навколо змінних'''
| Пробіли в іменах файлів можуть зламати скрипт
|-
| '''Писати <code>name = value</code>'''
| У Bash так не оголошуються змінні
|-
| '''Плутати <code>></code> і <code>>></code>'''
| <code>></code> перезаписує файл, <code>>></code> додає
|-
| '''Запускати <code>rm -r</code> без перевірки'''
| Можна видалити важливі файли
|-
| '''Використовувати Bash-синтаксис із <code>#!/bin/sh</code>'''
| sh має змогу не підтримувати Bash-можливості
|-
| '''Ігнорувати exit code'''
| Скрипт має змогу продовжитись після помилки
|-
| '''Зберігати паролі в скрипті'''
| Це небезпечно
|}

<syntaxhighlight lang="bash">

<syntaxhighlight lang="bash">

Рекомендований шлях навчання Bash

автоматизація процесів команд Дуже добре
Linux server administration Дуже добре
Backup-скрипти Добре
CI/CD steps Добре
Логи й текстові файли Дуже добре
Docker entrypoint Добре
Великий бізнес-застосунок Не підходить
Складна обробка даних Можливо, але краще Python
Web frontend Не підходить

echo $?;</syntaxhighlight>

</syntaxhighlight> grep шукає текст.; while [ "$count" -le 5 ]; do Скопіювати файл:
"$var" Підставляє змінну й зберігає пробіли
'$var' Не підставляє змінну
$var Підставляє змінну, але має змогу зламатися на пробілах

</syntaxhighlight>

</syntaxhighlight>

Висновок

!;<syntaxhighlight lang="bash">
{| class="wikitable"
echo "Hello, Bash!"
Коментарі починаються з символу <code>#</code>.; #!/usr/bin/env bash

crontab -e

<syntaxhighlight lang="bash">
!; Значення
Замінити текст:

</syntaxhighlight> echo "Починаємо роботу" npm test

!;</syntaxhighlight>

</syntaxhighlight> 0 2 * * * /home/user/backup.sh хвилина година день_місяця місяць день_тижня команда

!; Типові задачі:

</blockquote>

ShellCheck сприяє знайти:

<blockquote>
</syntaxhighlight>
Показати PATH:

set -e

</syntaxhighlight>

set -euo pipefail

</blockquote>
<syntaxhighlight lang="bash">
{| class="wikitable"

<syntaxhighlight lang="bash">

Створити архів:

<syntaxhighlight lang="bash">

У Bash дуже істотно правильно використовувати лапки.; Термін

== Bash і Git ==
!; Пояснення

date=$(date +%Y-%m-%d-%H-%M-%S)

done
== grep ==
Копіювання файлу через scp:

'''sed''' застосовується для потокового редагування тексту.; Що вивчати

Приклад:

<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
</syntaxhighlight>

Приклад:

<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Приклад:
!; Перевага
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">

 echo "Неповнолітній"

<syntaxhighlight lang="bash">
git clone https://example.com/repo.git
</syntaxhighlight>
== Коли Bash — хороший вибір ==
|-
| '''Linux-адміністрування'''
| Керування серверами, файлами, сервісами
| systemctl, journalctl, ssh
|-
| '''DevOps'''
| автоматизація процесів deployment, CI/CD, Docker
| deploy.sh, build.sh, backup.sh
|-
| '''Backend'''
| Запуск сервісів, тестів, міграцій
| npm, php artisan, python manage.py
|-
| '''Робота з файлами'''
| Пошук, копіювання, архівація
| find, cp, tar, rsync
|-
| '''Логи'''
| Аналіз журналів системи й застосунків
| grep, tail, awk, sed
|-
| '''Backup'''
| Резервне копіювання файлів і баз
| pg_dump, tar, rsync
|-
| '''CI/CD'''
| Команди збірки й тестування
| GitHub Actions, GitLab CI
|-
| '''ERP-інфраструктура'''
| Обміни, нічні задачі, імпорт/експорт
| cron, shell scripts, database dumps
|}

Небажано:

mkdir -p logs/2026/may

[[Категорія:Автоматизація]]

{| class="wikitable"
Перейменувати або перемістити:
</syntaxhighlight>

mkdir -p "$backup_dir"

Приклад:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">

</blockquote>

<syntaxhighlight lang="bash">
== Встановлення і доступність ==
pytest

== Shebang ==

</syntaxhighlight>
!; Параметр

</syntaxhighlight>

fi
== Недоліки Bash ==
{| class="wikitable"

!; Чи підходить Bash?; if [ -f "$1" ]; then
 echo "Config exists"
<syntaxhighlight lang="bash">
|-
| '''Використовувати <code>set -euo pipefail</code>'''
| Скрипт краще реагує на помилки
|-
| '''Брати змінні в лапки'''
| Захист від пробілів і спецсимволів
|-
| '''Перевіряти аргументи'''
| Скрипт має пояснювати, що очікує
|-
| '''Не хардкодити паролі'''
| Секрети мають бути в environment variables або secret storage
|-
| '''Логувати дії'''
| Легше розбирати помилки
|-
| '''Використовувати ShellCheck'''
| Автоматична перевірка скриптів
|-
| '''Розділяти складну логіку на функції'''
| Скрипт легше читати й підтримувати
|}

echo "Listing files in: $directory"

Виконати другу команду тільки якщо перша успішна:
#!/usr/bin/env bash

!;</syntaxhighlight>

</syntaxhighlight>
<syntaxhighlight lang="bash">
== Арифметика ==

== Для чого застосовується Bash ==

* помилки quoting;
* невизначені змінні;
* небезпечні конструкції;
* проблеми переносимості;
* типові помилки Bash.; Пояснення
== PATH ==
</syntaxhighlight>

docker logs container_name

<syntaxhighlight lang="bash">

mkdir reports

z=$((20 / 4))
</syntaxhighlight>
!; Змінні середовища доступні дочірнім процесам.; Компонент

<syntaxhighlight lang="bash">
Створимо файл <code>hello.sh</code>:

== tar ==

<syntaxhighlight lang="bash">
== xargs ==
</syntaxhighlight>
|-
| '''Доступність'''
| Bash є собою майже на кожному Linux-сервері
|-
| '''Швидкість автоматизації'''
| Багато задач можна автоматизувати за кілька рядків
|-
| '''інтеграційні функціональні можливості з Unix-утилітами'''
| grep, find, awk, sed, tar, curl, ssh
|-
| '''Потужні pipes'''
| Команди без зайвих зусиль поєднувати
|-
| '''Добрий для DevOps'''
| Deployment, CI/CD, backup, Docker
|-
| '''Простий старт'''
| Перші команди без зайвих зусиль вивчити
|-
| '''Ідеальний для серверів'''
| Linux-сервери часто адмініструються через Bash
|}

'''curl''' застосовується для HTTP-запитів і завантаження файлів.; Значення

<syntaxhighlight lang="bash">

Приклади команд Docker:

<syntaxhighlight lang="bash">
#!/usr/bin/env bash

curl https://example.com
kill 1234

Приклад:

Безпечна робота зі скриптами

Показати домашній каталог:

</syntaxhighlight>

echo "$HOME"

переважні аспекти Bash

chmod

Завантажити файл:

</syntaxhighlight>

</syntaxhighlight>

  1. !/bin/bash

</syntaxhighlight>

echo "Strict mode enabled"

Показати всі змінні середовища:

  1. !/usr/bin/env bash

PATH — це список каталогів, у яких Bash шукає виконувані команди.; fi count=1

<syntaxhighlight lang="bash">

Приклад пошуку великих файлів:
mkdir -p backup
Створити змінну середовища:
== Bash у порівнянні з іншими інструментами ==

!; Перебір значень:
!; Напрям

Символ pipe:
#!/usr/bin/env bash

 echo "File: $file"
Якщо команда не запускається, можливо, її немає в PATH.; |-
sh Bash має більше можливостей, але sh більш переносимий
Zsh Zsh зручніший як інтерактивна shell, Bash частіше застосовується в скриптах
Fish Fish зручний для користувача, але не сумісний із Bash-синтаксисом
PowerShell PowerShell сильний у Windows і функціонує з обʼєктами, Bash сильний у Unix/Linux
Python Python краще для складної логіки, Bash краще для склеювання команд
Go Go краще для надійних CLI-утиліт, Bash швидший для простих скриптів

Видалити файл: -d '{"name":"Anna"}'

Цикл while

1 Terminal, shell, Bash 2 pwd, ls, cd 3 Робота з файлами: cp, mv, rm, mkdir 4 cat, less, head, tail 5 grep і find 6 Pipes і redirect 7 Змінні й quoting 8 Аргументи скрипта 9 if, test, перевірка файлів 10 for, while 11 functions 12 exit codes 13 set -euo pipefail 14 ShellCheck 15 cron, ssh, curl, tar 16 Docker, Git, CI/CD

Небезпечний підхід:

which bash grep -i "error" app.log

|-
| '''ОС'''
| Linux, macOS або WSL у Windows
|-
| '''Shell'''
| Bash
|-
| '''Редактор'''
| VS Code, Vim або Nano
|-
| '''Перші команди'''
| ls, cd, cat, grep, find
|-
| '''Перший скрипт'''
| hello.sh або backup.sh
|-
| '''Перевірка'''
| ShellCheck
|-
| '''Практика'''
| Логи, backup, Git, Docker, cron
|}

!; -name "*.log"

chmod 755 script.sh

Bash і PostgreSQL backup

Приклад: Bash — це інструмент, який надає можливість керувати системою, запускати команди й автоматизувати повторювану роботу через скрипти.

!;

find .; Інструмент

docker run app
== Мінімальний набір для старту ==
export APP_ENV=production
== Перший Bash-скрипт ==

echo "Готово"

echo "Exit code: $?"

find .; Значення

!; Недолік

echo "one"; echo "two"

fi

check_file() { return 0 Terminal — це вікно.; Рекомендація

Безпечніше:

== Порівняння рядків ==

awk '{sum += $2} END {print sum}' data.txt

<syntaxhighlight lang="bash">
bash
<syntaxhighlight lang="bash">
Інші приклади:
Знайти файл:

fi

</syntaxhighlight>

echo "Hello, $1" git commit -m "Update" </syntaxhighlight>

Bash і Docker

backup_dir="/backups/postgres"

Змінні

ps aux | grep nginx
 else

Приклад команд збірки:

kill -9 1234

У Bash немає кнопки “скасувати”.; rm notes_old.txt

; Приклад:

На більшості Linux-систем Bash уже встановлений.; Опція Типові права: filename="my file.txt"

</syntaxhighlight>
|-
| <code>-f file</code>
| існує звичайний файл
|-
| <code>-d dir</code>
| існує каталог
|-
| <code>-e path</code>
| шлях існує
|-
| <code>-r file</code>
| файл доступний для читання
|-
| <code>-w file</code>
| файл доступний для запису
|-
| <code>-x file</code>
| файл виконуваний
|}

== Bash і CI/CD ==

!;<syntaxhighlight lang="bash">

'''Bash'''  один із найважливіших інструментів у Linux, DevOps і серверній розробці.; Помилка

Функція з кодом повернення:

!; count=$((count + 1))
|-
| <code> "$a" = "$b" </code>
| рядки рівні
|-
| <code> "$a" != "$b" </code>
| рядки не рівні
|-
| <code> -z "$a" </code>
| рядок порожній
|-
| <code> -n "$a" </code>
| рядок не порожній
|}

if [ "$count" -gt 10 ]; then

<syntaxhighlight lang="bash">
== Pipes ==

 exit 1
!; Значення

== Цикл for ==

docker ps
Порахувати кількість помилок:
curl -O https://example.com/install.sh

Знайти всі log-файли:

ls /unknown 2> errors.log
</blockquote>
} return 1 grep -R "database" .; Етап cp *.txt backup/ Створити вкладені каталоги: git status

Умови if

Кожна команда повертає код завершення.; Що означає

Функція з аргументом: </syntaxhighlight>

; Значення
Знайти файли, змінені за останню добу:
'''Команда <code>rm -r</code> має змогу видалити цілий каталог разом із файлами.'''
Вивести першу колонку:

'''cron''' застосовується для запуску задач за розкладом.; Символ

<blockquote>

<syntaxhighlight lang="bash">
'''Bash  це не без ускладнень оболонка.; Чому це проблема
Формат:
Приклад умови:
sed -n '10,20p' file.txt У Bash змінні створюються без пробілів навколо знака =.; Значення </syntaxhighlight> </syntaxhighlight> cp notes.txt backup/notes.txt
Функція без аргументів:

Redirect перенаправляє введення або виведення.; Запис

Запуск:

!; {| class="wikitable"
else
</blockquote>

x=$((10 - 3))

великих програм зі складною бізнес-логікою забезпечується через Bash не є собою найкращим вибором; додатково реалізовано але він незамінний для командного рядка, серверів і автоматизації.; -name "*.tmp" -print0 | xargs -0 rm

== Робота з каталогами ==

curl -O https://example.com/file.zip
У Bash-скриптах часто використовують суворіші конфігурація.; Як застосовується Bash
<blockquote>
y=$((4 * 5))

!; Небезпечні команди треба перевіряти до запуску.'''
Показати процеси:

<syntaxhighlight lang="bash">
755 власник має змогу все, інші можуть читати й виконувати
644 власник має змогу читати й писати, інші тільки читати
600 тільки власник має змогу читати й писати

rm -r reports

== Джерела ==
== Логічні оператори ==

touch notes.txt
name="Anna"

<syntaxhighlight lang="bash">
Видалити каталог із вмістом:
echo "Arguments count: $#"

<syntaxhighlight lang="bash">

age=18

== Bash в ERP-інфраструктурі ==
Або записати набір команд у файл:
awk '{print $1}' access.log

== sudo ==

date=$(date +%Y-%m-%d)

ps aux

} say_hello() { tar -xzf backup.tar.gz

; ssh user@example.com

</syntaxhighlight>

Примусово завершити:

echo "Script name: $0" </syntaxhighlight>

Порахувати суму другої колонки:

</syntaxhighlight>

!; Приклади
  1. !/usr/bin/env bash
; Код

ps aux | grep nginx

  1. !/usr/bin/env bash

curl

Перевірити версію Bash: npm run build

<syntaxhighlight lang="bash">
; Знайти бізнес-процес:
$0 Назва скрипта
$1 Перший аргумент
$2 Другий аргумент
$@ Усі аргументи
$# Кількість аргументів
echo "$PATH"
#!/usr/bin/env bash

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

У Bash майже завжди краще писати змінні в подвійних лапках: "$var". git push

Показати номери рядків:

find .;== Небезпечні команди ==

Bash, Shell і Terminal

  1. !/usr/bin/env bash

Bash і cron

== Exit code ==
Bash підтримує роботу арифметичні вирази.; Порівняння з Bash
Відкрити crontab:
|-
| '''Назва'''
| Bash
|-
| '''Повна назва'''
| Bourne Again SHell
|-
| '''Тип'''
| Командна оболонка і мова скриптів
|-
| '''Походження'''
| еволюція Bourne shell
|-
| '''Основні системи'''
| Linux, Unix, macOS, BSD, WSL
|-
| '''Файли скриптів'''
| .sh, .bash
|-
| '''Головні сфери'''
| DevOps, Linux, сервери, CI/CD, автоматизація процесів, backup, deployment
|-
| '''Складність для новачків'''
| Низька для базових команд, середня для скриптів, висока для складної автоматизації
|-
| '''офіційно затверджений проєкт'''
| GNU Bash
|}

Рекомендовано:

directory="$1"

Функції

chmod +x script.sh

</syntaxhighlight>

</syntaxhighlight>

  1. !/usr/bin/env bash

mkdir -p "$backup_dir"

GET-запит: Запуск через bash:

Перебір файлів:
echo $filename

Послідовне виконання:

Перша команда

exec "$@" Або зробити файл виконуваним:

Terminal Програма-вікно, через яку користувач системи вводить команди
Shell Командна оболонка, яка приймає й виконує команди
Bash Один із найпопулярніших різновидів shell
Shell script Файл із командами shell

; * GNU Bash Manual: https://www.gnu.org/software/bash/manual/

</syntaxhighlight>

; Bash — це мова команд для Linux/Unix-світу.; Це універсальний інструмент, який надає можливість перетворювати ручні дії в повторювані, контрольовані й автоматизовані процеси.

</syntaxhighlight> find .;

Pipes — одна з найсильніших ідей Bash: прості команди можна поєднувати в потужні ланцюжки.

Коментарі

ls /unknown-folder

-eq дорівнює
-ne не дорівнює
-gt більше
-ge більше або дорівнює
-lt менше
-le менше або дорівнює

</syntaxhighlight>

== find ==

Знайти каталоги:
 echo "$item"
'''Для сучасних Bash-скриптів часто використовують <code>#!/usr/bin/env bash</code>, бо він шукає Bash через PATH.'''

done
Bash-скрипт має змогу приймати аргументи.; Перед виконанням треба уважно перевірити шлях.'''
== Змінні середовища ==

== Аргументи скрипта ==
<syntaxhighlight lang="bash">
<blockquote>

<syntaxhighlight lang="bash">

== Bash і backup ==

<syntaxhighlight lang="bash">
if [ "$#" -ne 1 ]; then
<blockquote>

<syntaxhighlight lang="bash">

sum=$((a + b))
[[Категорія:CI/CD]]
./script.sh hello world

ssh -i key.pem user@example.com Зробити скрипт виконуваним: grep "error" app.log | wc -l

</syntaxhighlight>

find .; Пояснення

echo "Starting application..." echo "$count" tar -czf "$backup_dir/files.tar.gz" /var/www

Pipe передає результат однієї команди в іншу.; Неправильно:

; Якщо Linux-сервер — це машина, то Bash — це панель керування, через яку розробник або адміністратор запускає, перевіряє, ремонтує й автоматизує роботу системи.

Створити файл:

!;<syntaxhighlight lang="bash">
Запуск:

; Команда

sudo запускає команду з правами адміністратора.; Чому небезпечна

<syntaxhighlight lang="bash">
{| class="wikitable"

== Quoting ==

if [ -f "config.yml" ]; then

pg_dump "$database" > "$backup_dir/$database-$date.sql"

* роботи з Linux;
* серверного адміністрування;
* автоматизації;
* backup;
* CI/CD;
* Docker;
* Git;
* cron;
* аналізу логів;
* деплою;
* ERP-інфраструктури;
* щоденної роботи розробника.; fi

<syntaxhighlight lang="bash">

Простими словами

backup_dir="/backups/$date"

* backup бази даних;
* імпорт файлів;
* експорт звітів;
* архівування логів;
* запуск нічних обмінів;
* синхронізація каталогів;
* запуск міграцій;
* перевірка сервісів;
* моніторинг дискового простору;
* актуалізація застосунку.; echo "Більше ніж 10"

tar -czf backup.tar.gz folder/

</syntaxhighlight>

ShellCheck — інструмент для перевірки Bash/shell-скриптів.;

<syntaxhighlight lang="bash">

curl -X POST https://api.example.com/users \
name = "Anna"
done

 echo "Config exists"

Bash потрібен для:

Bash надає можливість вводити команди вручну або записувати їх у файл-скрипт.; Задача

find /var/log -type f -size +100M

Bash часто застосовується в CI/CD.; |-
| <code>rm</code>
| Видаляє файли
|-
| <code>rm -r</code>
| Видаляє каталоги з вмістом
|-
| <code>chmod -R</code>
| Масово змінює права
|-
| <code>chown -R</code>
| Масово змінює власника
|-
| <code>dd</code>
| має змогу перезаписати диск або розділ
|-
| <code>mkfs</code>
| Форматує файлову систему
|}

'''awk''' застосовується для обробки тексту й колонок.; -mtime -1
<syntaxhighlight lang="bash">
bash hello.sh

for file in *.txt; do

echo "Backup completed: $backup_dir"

= Bash =
find "$directory" -type f
Знайти бізнес-процес:
|-
| '''0'''
| Успішне виконання
|-
| '''не 0'''
| Помилка або особливий стан
|}

Bash має змогу бути корисним для ERP-систем.; це командна оболонка і мова скриптів, яка широко застосовують, коли потрібно в Linux, Unix-подібних системах, macOS, DevOps, CI/CD, адмініструванні серверів, автоматизації задач, роботі з файлами, логами, процесами, Docker, Git та іншими інструментами командного рядка виступає ключовою рисою Bash або Bourne Again SHell.; Bash — це оболонка, яка всередині цього вікна виконує команди. </syntaxhighlight>

for item in apple banana orange; do
Приклад backup-скрипта:

Запуск скрипта щодня о 02:00:

Завершити бізнес-процес:

Запустити Bash:

echo "$sum" Приклад: Подивитися вміст:

; ls -la
> записати результат у файл, перезаписавши його
>> додати результат у кінець файлу
< взяти вхідні інформаційні дані з файлу
2> перенаправити помилки
== Приклад якісного Bash-скрипта ==
 echo "Config not found"
{| class="wikitable"

say_hello "Anna"
'''Команда <code>rm</code> видаляє файли.; Приклад для PHP:

== Хороші практики Bash ==
echo "$PATH"
<syntaxhighlight lang="bash">
[[Категорія:Мови програмування]]
Ці поняття часто плутають.;<blockquote>

vendor/bin/phpunit Пошук без урахування регістру:

<syntaxhighlight lang="bash">
 echo "Directory does not exist: $directory"
if [ !; '''find''' шукає файли й каталоги.; fi
docker build -t app .;

; Практика

</syntaxhighlight>

chmod змінює права доступу.; Bash часто використовують у Docker entrypoint-скриптах.; tar -tzf backup.tar.gz

Коротко

echo "Дорослий"

name="Anna"

Bash перетворює командний рядок на мову автоматизації.

echo "First argument: $1"
!; Вираз

== ShellCheck ==

echo "Hello" > hello.txt
a=5
!; -type d

set -euo pipefail

mv notes.txt notes_old.txt

else

Класичний варіант:

</syntaxhighlight>

== ssh ==

Безпечніший варіант для файлів із пробілами:

else

Приклад резервного копіювання PostgreSQL:

</syntaxhighlight> df -h scp file.txt user@example.com:/home/user/

Пошук у каталозі:

find .; -name "*.tmp" | xargs rm

</syntaxhighlight> if [ -n "$name" ]; then

 echo "Usage: $0 <directory>"
<syntaxhighlight lang="bash">
'''У Bash пробіли навколо <code>=</code> при присвоєнні змінної не ставляться.'''
|-
| <code>set -e</code>
| завершити скрипт при помилці
|-
| <code>set -u</code>
| помилка при використанні невизначеної змінної
|-
| <code>set -o pipefail</code>
| pipe вважається помилковим, якщо помилилась будь-яка команда в ланцюжку
|}

Shebang — це перший рядок скрипта, який вказує, якою програмою запускати файл.; Значення Типові команди Git у Bash: echo "Цей рядок виконається" POST-запит із JSON: Приклад:

{| class="wikitable"

Підключення з ключем: