Книга: Искусство программирования на языке сценариев командной оболочки

Пример 29-7. Трассировка переменной

Пример 29-7. Трассировка переменной

#!/bin/bash

trap 'echo "VARIABLE-TRACE> $LINENO: $variable = "$variable""' DEBUG

# Выводить значение переменной после исполнения каждой команды.

variable=29

echo "Переменная "$variable" инициализирована числом $variable."

let "variable *= 3"

echo "Значение переменной "$variable" увеличено в 3 раза."

# Конструкция "trap 'commands' DEBUG" может оказаться очень полезной

# при отладке больших и сложных скриптов,

# когда размещение множества инструкций "echo $variable"

# может потребовать достаточно большого времени.

# Спасибо Stephane Chazelas.

exit 0


Конструкция trap '' SIGNAL (две одиночных кавычки) -- запрещает SIGNAL для оставшейся части сценария. Конструкция trap SIGNAL -- восстанавливает действие сигнала SIGNAL. Эти конструкции могут использоваться для защиты критических участков сценария от нежелательного прерывания.

trap '' 2 # Сигнал 2 (Control-C) -- запрещен.

command

command

command

trap 2 # Разрешение реакции на Control-C

Оглавление книги


Генерация: 1.192. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз