Баш получая FD трубы - PullRequest
       20

Баш получая FD трубы

1 голос
/ 02 июня 2010

Почему не работает следующее?

exec 3<|cat $0

Идея состоит в том, чтобы получить дескриптор файла (3) канала (| cat $ 0).

Ответы [ 2 ]

2 голосов
/ 02 июня 2010

Вы не можете смешивать exec и трубы таким образом. Кажется, вам нужна подстановка процесса:

$ exec 3< <(cat /etc/hosts)
$ grep ftp <&3
209.85.41.143 ftp.archlinux.org

http://tldp.org/LDP/abs/html/x17601.html#REDIR1

http://tldp.org/LDP/abs/html/process-sub.html

0 голосов
/ 02 июня 2010
exec 3<>$0
while read -u 3 line;
do
  grep ftp $line;
done
exec 3>&-;
...