Сообщение об ошибке: It must be at least 19 lines by 80 columns.
довольно ясно здесь, необходимо будет увеличить терминал, к, по крайней мере, 19 lines
высота, и 80 columns
width.
От man bash
:
Process Substitution
Process substitution is supported on systems that support
named pipes (FIFOs) or the /dev/fd method of naming open
files. It takes the form of <(list) or >(list). The process
list is run with its input or output connected to a FIFO or
some file in /dev/fd. The name of this file is passed as an
argument to the current command as the result of the expan‐
sion. If the >(list) form is used, writing to the file will
provide input for list. If the <(list) form is used, the
file passed as an argument should be read to obtain the out‐
put of list.
Можно искать страницы справочника путем нажатия /
и затем вводя Вашу строку поиска, которая является хорошим способом найти информацию как это. Это действительно, конечно, требует, чтобы Вы знали в который страница справочника искать :)
Необходимо заключить в кавычки (
хотя, потому что это имеет особое значение при поиске. Для нахождения соответствующего раздела в странице справочника удара ввести />\(
.
>(tee copyError.txt >&2)
на самом деле несколько различных функций:
>(...)
назван 'заменой процесса'. Это создает файл именованного канала в /dev/fd
и запись в тот файл предоставит вход процессу в круглых скобках.
>
: В целом это называют 'перенаправлением вывода' и позволяет Вам отправлять стандартный вывод (>
или 1>
) или стандартная погрешность (2>
) в файл или процесс. >&2
перенаправление вывода, но в этом случае, вывод tee
отправляется в стандартную погрешность (это что &2
&1
стандартный вывод),
Без >
, круглые скобки (()
) запустит подоболочку. Выполнение команд в круглых скобках породит другую оболочку, которая будет только существовать столько, сколько те команды работают. Вы видите, как это работает, если Вы объявляете переменную в подоболочке:
$ foo='Tom';(foo='Dick'; echo "Sub: $foo"); echo "Orig: $foo"
Sub: Dick
Orig: Tom
Как Вы видите, $foo
это было определено в подоболочке, является отдельным от того, определенного в родительской оболочке.
>(...)
не перенаправление. >(...)
расширен до имени файла. Если Вы хотите перенаправить вывод к этому, Вам нужно > >(...)
но >(...)
в более общем плане используется, где перенаправления не могут использоваться. Команда OP может быть достигнута с традиционными каналами, нет потребности в замене процесса там.
– Stéphane Chazelas
21.09.2013, 20:11
>
может обозначить перенаправление вывода и это ()
может обозначить подоболочку, но >(...)
на самом деле единственная, унитарная функция, которая не состоит из >
и ()
.
– ruakh
22.09.2013, 11:45