Файловые разрешения Linux изменяются

Это очень глупая цепочка перенаправления, которую вы собрали вместе. Я не понимаю, что вы на самом деле пытаетесь сделать, но вы определенно неправильно истолковали источник вашей проблемы. Возможно, это натолкнет вас на мысль:

[mikeserv@desktop top]$ > >(sed 's/^/hey there:\t/') 2> >(ls -l /dev/fd/*)

ls: cannot access /dev/fd/10: No such file or directory
ls: cannot access /dev/fd/255: No such file or directory
ls: cannot access /dev/fd/3: No such file or directory
hey there:  lr-x------ 1 mikeserv mikeserv 64 Oct 17 06:38 /dev/fd/0 -> pipe:[10484689]
hey there:  l-wx------ 1 mikeserv mikeserv 64 Oct 17 06:38 /dev/fd/1 -> pipe:[10484688]
hey there:  lrwx------ 1 mikeserv mikeserv 64 Oct 17 06:38 /dev/fd/2 -> /dev/pts/3
hey there:  l-wx------ 1 mikeserv mikeserv 64 Oct 17 06:38 /dev/fd/63 -> pipe:[10484688]

Конечно, echo не записывается в stdout цикла while - вы заменяете его в этой команде на любой pipe command1 read, когда делаете:

> >(command1) 2> >(command2)

Перенаправления обрабатываются в порядке - слева направо для каждой команды. И каждая из тех замен процесса, которые вы делаете, все они влияют на одну и ту же команду.

Я готов поспорить, что то, что вы на самом деле пытаетесь сделать, гораздо ближе к:

command0 | command1 2>&1 >/dev/null | command2
0
01.02.2018, 09:59
0 ответов

Теги

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