TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #561 710
Группировка команд {} против () - в чем реальная разница

В Bash есть два способа сгруппировать команды:
{ cmd1; cmd2; } и ( cmd1; cmd2 )

Снаружи выглядят почти одинаково. На практике - это разное поведение.

▪️ Главное отличие

Конструкция, где выполняется

{} - в текущем shell
() - в subshell (дочернем процессе)

▪️ Пример с переменными


count=0

{ count=5; }
echo "$count"


Результат: 5. Теперь с ():


count=0

( count=5 )
echo "$count"


Результат: 0. Переменная изменилась в subshell и пропала.

▪️ Практика: перенаправления. {} удобно для группового редиректа:


{
echo "line1"
echo "line2"
} > file.txt


Обе команды попадут в один файл.

▪️ Изоляция через (). Subshell полезен, когда нужно временно изменить окружение:


( cd /tmp && ls )


После выполнения ты останешься в текущем каталоге.

▪️ Типичный кейс


cd /tmp
do_something
cd -


Можно заменить:


( cd /tmp && do_something )


Без риска забыть вернуться обратно.

BashTex 📱 #bash
  • 🔥 6
More from @bash_tex
  1. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  2. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  3. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  4. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  5. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
  6. Sep 30, 2026DEBUG trap - как Bash выполняет код перед каждой командой В Bash есть специальный DEBUG tr…
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 →