首页 > 互联资讯 > 技术交流  > 

shell 里的进程替换(Process Substitution)( 什么是闭包?闭包的优缺点?)

shell 里的进程替换(Process Substitution)( 什么是闭包?闭包的优缺点?)

bash 和 zsh 里都支持进程替换(Process Substitution)

写法为:

<(command) 或 >(command)

比如:

$ cat <(ls) #把<(ls)当一个临时文件,文件内容是ls的结果,cat这个临时文件 $ ls > >(cat) #把>(cat)当成临时文件,ls的结果重定向到这个文件,最后这个文件被cat

用进程替换将 std 和 err 输出分别定向:

$ some_command > >(/bin/cmd_for_stdout) 2> >(/bin/cmd_for_stderr)

另参考这里:

www.ibm.com/developerworks/cn/aix/library/au-satzsh.html

里面有更多例子,比如:

#使用临时文件来将一个文件中的字段提取并重新组合到另一个文件中$ cut -f1 fileone >t1$ cut -f5 filetone >t5$ paste t1 t5 #用进程替换可以无需临时文件完成此任务$ paste -d: <(cut -d: -f1 /etc/passwd) <(cut -d: -f5 /etc/passwd) #进程替换支持嵌套$ sort <(egrep -v '^#' <(paste -d: <(cut -d: -f5 /etc/passwd) <(cut -d: -f1 /etc/passwd) ) )

原文地址:hongjiang.info/shell-process-substitution/

shell 里的进程替换(Process Substitution)( 什么是闭包?闭包的优缺点?)由讯客互联技术交流栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“shell 里的进程替换(Process Substitution)( 什么是闭包?闭包的优缺点?)