Почему Bash не принимает '&>&3', т.е. перенаправляющий stdout и stderr к дескриптору файла 3?

Покачивание (git://neil.brown.name/wiggle) может сделать это и имеет пакет Debian

0
26.11.2012, 01:38
2 ответа

Поэтому нет никакого оператора &>&.

Существует оператор &> word это перенаправляет и stdout и stderr к word.

Существует оператор [n]>& word это копирует fd n (значение по умолчанию 1) от fd word. Как особый случай, если n пусто, и word не число, перенаправления и stdout и stderr к word.

Но вот именно. Нет специального синтаксиса для дескрипторов файлов, которые можно объединить с операторами. Существуют только операторы, которые могут интерпретировать их операнды как дескрипторы файлов или имена файлов. И нет a &>& оператор, который перенаправляет и stdout и stderr, и интерпретирует его правильный операнд как дескриптор файла.

Сводка: нет никакого специального синтаксиса &n для дескрипторов файлов. & принадлежит оператору, не операнду. Нет никакого оператора &>&.

4
28.01.2020, 02:16

И почему был бы он? "... И> файл" является просто синтаксическим сахаром для "...> файл 2> &1". Ничто больше. Если Вы хотите сделать дескриптор 2 точками, где 3 указывает (/dev/null), необходимо использовать "... 2> &3".

2
28.01.2020, 02:16

Теги

Похожие вопросы