TGViewer
LinuxSkill - Сводки с прода и Шпаргалки LinuxSkill - Сводки с прода и Шпаргалки @linuxskill · 10.7K subscribers
Post #603 4.05K
🧠 Нужно ли ставить кавычки вокруг переменных в shell-скриптах?

Привет, повелитель терминала! Если ты в скриптах пишешь $var без кавычек — скорее всего, ты (пока что) просто везучий.
Давай разберёмся, когда и зачем переменные в shell-скриптах нужно оборачивать в кавычки.

### Общее правило:
> Оборачивай переменные в двойные кавычки, если не хочешь сюрпризов от пробелов, пустых значений и спецсимволов.

---

### Когда кавычки обязательны:
1. Значение может быть пустым:
   [ "$var" = "value" ]

2. Есть пробелы:
   xdg-open "$URL"

3. В переменной спецсимволы (*, &, ?):
   wget "$link"


---

### Пример бага:
file="My documents/report.pdf"
rm $file # ❌ Попытка удалить два файла: 'My' и 'documents/report.pdf'
rm "$file" # ✅ Удаляется нужный файл


---

### Когда кавычки можно опустить:
- $?, $#, $0 — безопасны без кавычек.
- Внутри арифметических или логических выражений:
   if [ "$?" -eq 0 ]; then ...


Вывод:
Используй кавычки по умолчанию. Это просто и защищает от десятков потенциальных багов.

🌳 Ветка: https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable

📩 Завтра: Секреты Bash: Как тестировать порты без curl и wget!
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Откройте для себя мир Управления Службами в Linux с нашей серией статей
🧠 - Контейнер в контейнере? Да это как матрёшка для айтишников: открываешь, а там ещё больше проблем… но зато все свои!
🧠 - Секретная Команда nsenter! Управляй Контейнерами как Хакер

#stackoverflow @LinuxSkill #Linux #ShellScripting #Quotes #SysAdmin #DevOps
Stack Overflow When to wrap quotes around a shell variable? Should or should I not wrap quotes around variables in a shell script? For example, is the following correct: xdg-open $URL [ $? -eq 2 ] or xdg-open "$URL" [ "$?" -eq "2&q...
  • 👍 14
More from @linuxskill
  1. Oct 9, 2026💀 df показывает 100%, а du молчит? 5 шагов спасения прода Сервисы падают с «No space left…
  2. Oct 7, 2026Post #1243
  3. Oct 6, 2026GitOps-практики: развёртываем сервис через ArgoCD Классический CI/CD запускает деплой. Но…
  4. Oct 5, 2026Post #1241
  5. Oct 2, 2026📊 Диск тормозит, а iostat показывает норму? Ищем хвост задержек Приложение подвисает на з…
  6. Sep 30, 2026💀 CPU под 100%, а в top пусто? Ловим невидимые процессы через eBPF Сервер греется, в шапк…
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 →