Привет, повелитель терминала! Если ты в скриптах пишешь
$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