TGViewer
LinuxSkill - Сводки с прода и Шпаргалки LinuxSkill - Сводки с прода и Шпаргалки @linuxskill · 10.7K subscribers
Post #1013 3.26K
⚠️ Никогда не используй [ ] в Bash, пока не прочитаешь это

Привет, инженер! 👋

Сколько раз ты ловил binary operator expected или забывал экранировать > в условии? В Bash скобки — это не просто стиль, это разные инструменты с разной логикой.

Давай разложим всё по полочкам, чтобы твои скрипты работали предсказуемо.

📌 1. Одинарные квадратные [ ... ] — Классика (test)
Это синоним команды test. Она старая, POSIX-совместимая, но капризная.

Нюанс: Переменные нужно брать в кавычки "$var", иначе при пустом значении скрипт упадет.
Минус: Знаки > и < нужно экранировать (\>), иначе Bash решит, что это перенаправление ввода/вывода.

if [ "$a" = "root" ]; then echo "Hi root"; fi


📌 2. Двойные квадратные [[ ... ]] — Расширенная проверка
Это ключевое слово самого Bash. Оно мощнее и безопаснее.

Плюс: Не нужно экранировать > и <.
Поддерживает логические && и || прямо внутри скобок.
Киллер-фича: Поддерживает регулярные выражения через оператор =~.

# Проверка регуляркой (без кавычек!)
if [[ "$ver" =~ ^3\. ]]; then echo "Version 3.x"; fi


📌 3. Одинарные круглые ( ... ) — Подоболочка (Subshell)
Команды внутри запускаются в отдельном процессе.

Суть: Переменные, измененные внутри (), не меняются в основном скрипте.
Пример: (cd /tmp; rm *.log) — вы перейдете в папку только внутри скобок, основной скрипт останется в текущей директории.

📌 4. Двойные круглые (( ... )) — Арифметика
Специальная конструкция для математики в стиле Си.

Плюс: Можно не писать $ перед переменными.
Поддерживает инкременты var++ и тернарные операторы.

(( a++ ))       # Увеличить a на 1
b=$(( a + 5 )) # Записать результат в b


💡 Итог:
Пишешь на Bash? Всегда используй [[ ]] для условий и (( )) для математики. Оставь [ ] для совместимости со старым sh.

#Linux #Bash #DevOps #Scripting #Shell
  • 👍 16
More from @linuxskill
  1. Oct 7, 2026Post #1243
  2. Oct 6, 2026GitOps-практики: развёртываем сервис через ArgoCD Классический CI/CD запускает деплой. Но…
  3. Oct 5, 2026Post #1241
  4. Oct 2, 2026📊 Диск тормозит, а iostat показывает норму? Ищем хвост задержек Приложение подвисает на з…
  5. Sep 30, 2026💀 CPU под 100%, а в top пусто? Ловим невидимые процессы через eBPF Сервер греется, в шапк…
  6. Sep 28, 2026🔥 Знаешь только ip a? 10 неочевидных команд ip для Linux Большинство админов знают про ip…
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 →