Перенаправления в bash

  • BASH
Перенаправление в bash даёт нам инструмент для тонкой манипуляции потоками ввода/вывода, создания каналов между командами и т.д. Каждый начинающий unix'ойд может сказать, что делает command > file. Однако, допустим, { { ls -l; } 2>&1 >&3 | cat > file; } 3>&1 поставит в ступор, иной раз, даже бывалого. Конечно, эта команда избыточна и представляет собой всего лишь ls -l 2>file, но сколько смысла заложено в этой строчке. Естественно, памяти доверять такой большой багаж знаний нельзя, поэтому я долго искал в рунете полный мануал по перенаправлениям, но… видимо плохо искал… И написал свой, с блэкджеком и шлюхами. Я не претендую на полноту изложения и широту охвата, и не берусь утверждать, что после прочтения можно будет слёту понимать что-то вроде:

{
  {
    cmd1 3>&- |
      cmd2 2>&3 3>&-
  } 2>&1 >&4 4>&- |
    cmd3 3>&- 4>&-

} 3>&2 4>&1


Читать дальше →