Каждый скрипт начинается с set -euo pipefail — стоп при первой ошибке, незаданной переменной, упавшем пайпе.

#!/bin/bash
set -euo pipefail

NAME="${1:-world}"          # значение по умолчанию
readonly LOG="/var/log/app.log"

cleanup() { rm -f /tmp/app.lock; }
trap cleanup EXIT

[[ -f "$LOG" ]] && tail -n 100 "$LOG"

[[ ]] вместо [ ] — нет сюрпризов с пробелами в переменных. readonly — защита от случайного переопределения. trap EXIT — очистка даже при ошибке.

#bash #linux #sysadmin