为什么以下不起作用?
exec 3<|cat $0
想法是获取管道的文件描述符(3)(| cat $ 0)。
答案 0 :(得分:2)
你不能以这种方式混合 exec 和管道。看来您需要的是流程替换:
$ exec 3< <(cat /etc/hosts)
$ grep ftp <&3
209.85.41.143 ftp.archlinux.org
答案 1 :(得分:0)
exec 3<>$0
while read -u 3 line;
do
grep ftp $line;
done
exec 3>&-;