TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4697 1.2K
🛠 [[ ]] вместо [ ] в bash не стиль, а безопасность

Одиночные скобки [ ] — это не синтаксис bash, а внешняя команда /usr/bin/[. Двойные [[ ]] — встроенная конструкция самого bash. Разница не только косметическая.

Где одиночные скобки ломаются

Пустая переменная без кавычек это синтаксическая ошибка:
name=""

# [ ] — падает с "unary operator expected"
if [ $name = "admin" ]; then

# [[ ]] — работает корректно
if [[ $name == "admin" ]]; then


Строка с пробелами без кавычек:
file="my file.txt"

# [ ] — видит два аргумента, ломается
if [ -f $file ]; then

# [[ ]] — обрабатывает как одно значение
if [[ -f $file ]]; then


Что умеют только [[ ]]

Паттерн-матчинг без внешних утилит:
filename="access.log"

if [[ "$filename" == *.log ]]; then
echo "log file"
fi


Регулярные выражения через =~:
version="2.4.1"

if [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "valid semver"
fi


Логические операторы && и || внутри скобок:
# [ ] — нельзя, нужно выносить наружу
if [ "$a" = "x" ] && [ "$b" = "y" ]; then

# [[ ]] — можно внутри
if [[ "$a" == "x" && "$b" == "y" ]]; then


Одно исключение

[ ] нужен для POSIX-совместимых скриптов с #!/bin/sh — там [[ ]] не работает. Если шебанг #!/bin/bash — используйте [[ ]] везде.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#root_prompt
  • 👍 8
  • ❤ 1
  • 😢 1
More from @devopsslib
  1. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  4. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
  5. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 10, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
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 →