TGViewer
DevOps Ready | IT DevOps Ready | IT @devops_ready · 7.62K subscribers
Post #1208 1.09K
Почему переменные окружения лучше не подставлять без кавычек?

В shell-скриптах часто используют переменные в командах:
rm -rf $TARGET


На вид обычная строка, но без кавычек shell сначала выполнит word splitting и glob expansion. Если в переменной есть пробелы, значение превратится в несколько аргументов.

Например:
TARGET="/tmp/app cache"

printf '<%s>\n' $TARGET


Вывод будет не одним путём, а двумя словами:
</tmp/app>
<cache>


Правильный вариант почти всегда брать переменную в кавычки:
printf '<%s>\n' "$TARGET"


Теперь значение передаётся как один аргумент:
</tmp/app cache>


То же самое касается путей, имён файлов, URL и пользовательского ввода:
cp "$SOURCE" "$DEST"
grep "$PATTERN" "$LOG_FILE"
mkdir -p "$APP_DIR"


Есть редкие случаи, когда разбиение по словам нужно специально, но в обычных скриптах это скорее исключение.

Для списков лучше использовать массивы:
files=("app log.txt" "error log.txt")

printf '%s\n' "${files[@]}"


В shell кавычки вокруг переменных это не косметика. Они защищают скрипт от пробелов, спецсимволов и случайного выполнения команды не с теми аргументами.

➡️ DevOps Ready | #практика
  • 👍 7
  • ❤ 4
  • 🔥 2
More from @devops_ready
  1. Oct 2, 2026Знали, почему настройки systemd-сервиса лучше менять через systemctl edit? Допустим, прило…
  2. Oct 2, 2026⚡️5 фундаментальных курсов по ИБ по цене одного Это предложение для тех, кто готов войти в…
  3. Oct 2, 2026Этот инструмент поможет поять из чего на самом деле состоит Docker-образ! Он содержит терм…
  4. Oct 1, 2026Проверяем итоговую конфигурацию Docker Compose перед запуском! Когда проект использует баз…
  5. Oct 1, 2026🔄 Безопасный арсенал практических инструкций, курсов и инструментов 👩‍💻 Linux & Bash 🤔…
  6. Oct 1, 2026Шпаргалка по жизненному циклу Pod в Kubernetes! На картинке показано, как запрос проходит…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →