👁 В администрировании и автоматизации часто приходится запускать сложные команды: массовые удаления, перемещения файлов, или изменения прав. Ошибка в одной переменной может снести полсистемы. Поэтому перед выполнением полезно сначала посмотреть, какие команды реально сформирует скрипт.
📝 Предварительный просмотр команды через echo
Перед тем как запускать потенциально опасную операцию, можно вывести её итоговый вид. Это помогает убедиться, что переменные и пути подставились правильно. Команда не выполнится, но покажет, что именно будет удалено. После проверки можно убрать echo и выполнить её по-настоящему.
dir="/var/log/myapp" echo rm -rf "$dir"/*
📝 Трассировка выполнения скрипта через set -x
Если скрипт начинает вести себя странно, можно включить режим трассировки. Bash будет выводить каждую команду перед выполнением. Это помогает быстро понять, какие команды реально выполняются и какие значения принимают переменные.
#!/usr/bin/env bash set -x backup_dir="/backup" tar -czf "$backup_dir/archive.tar.gz" /var/www set +x
📝 Временное включение трассировки для отдельных участков
Иногда не нужно логировать весь скрипт. Можно включить трассировку только вокруг проблемного участка. Так лог не будет захламляться, а нужный участок будет виден полностью.
set -x systemctl restart nginx journalctl -u nginx -n 20 set +x
❗️ В сложных bash-скриптах ошибки чаще всего происходят из-за неправильно подставленных переменных. Трассировка и предварительный просмотр команд позволяют поймать такие баги до того, как они что-нибудь сломают.
tags: #bash #полезно



