Когда в скрипте что-то идет не так, часто хочется понять, какая команда выполнилась последней и какие значения получили переменные. Вместо того чтобы расставлять десятки echo, в bash есть встроенный инструмент -
set -x.Если указать его в начале скрипта, оболочка начнет печатать в консоль каждую выполняемую команду с подставленными значениями переменных. Перед строкой появляется символ +, что делает разбор вывода наглядным.
▪️ Пример: резервное копирование файла
Создадим простой скрипт, который проверяет наличие файла и копирует его в директорию резервных копий:
#!/bin/bash
set -x
src="/etc/hosts"
dst="/tmp/backup"
mkdir -p "$dst"
timestamp=$(date +%Y%m%d_%H%M%S)
cp "$src" "$dst/hosts_$timestamp"
echo "Backup created: $dst/hosts_$timestamp"
Вывод консоли:
▶ Запуск
# ./backup.sh
+ src=/etc/hosts
+ dst=/tmp/backup
+ mkdir -p /tmp/backup
+ date +%Y%m%d_%H%M%S
+ timestamp=20251007_121330
+ cp /etc/hosts /tmp/backup/hosts_20251007_121330
+ echo 'Backup created: /tmp/backup/hosts_20251007_121330'
Backup created: /tmp/backup/hosts_20251007_121330
Мы видим каждое действие: какие переменные подставились, как отработала команда date, куда скопировался файл.
#linux #debug
🧑💻 NetworkAdmin