unix系统管理员工具包: 充分利用 zsh
2007-05-11 08:12:58 来源:WEB开发网清单 9. 使用反引号运算符来执行进程替换$ emacs `find . -name "*.html"`
您可以在 zsh 中使用许多选项。最主要的方法是使用 $() 构造。此构造提供对反引号的直接替代,并且它还具有更容易在某些命令组合中嵌入和嵌套的优点。例如,您可以将清单 9 重写为清单 10。
清单 10. 对使用反引号来执行进程替换的替代zsh$ emacs $(ls **/*.html)
这里的进程替换运行目录列表组件并返回一个文件名列表,后者又提供给 emacs 命令的参数列表。
另一个有用的构造是 =(list) 结构。当使用此功能时,括号中的元素会生成一个临时文件,并返回该文件的名称。例如,您可以使用清单 11 来生成一个文本文件。
清单 11. 生成一个文本文件zsh$ cat =(print -l tom dick harry)
tom
dick
harry
更有用的是,您可以将它与其他元素组合,以支持更复杂的输出和过滤。例如,您可以使用以下命令(请参见清单 12)来获取与 imapd 和 httpd(IMAP 邮件服务和 Apache http 服务)匹配的进程列表。
清单 12. 获取与 imapd 和 httpd 匹配的进程列表zsh$ ps -ax |fgrep -f =(print -l httpd imapd)
406 ?? Ss 0:02.05 /usr/sbin/httpd
426 ?? S 0:01.32 /usr/sbin/httpd
429 ?? S 0:06.42 imapd: sulaco.mcslp.pri [192.168.0.101] appleblog user.appleblog
434 ?? S 0:57.81 imapd: sulaco.mcslp.pri [192.168.0.101] mcarc user.mcarc
435 ?? S 0:00.14 imapd: sulaco.mcslp.pri [192.168.0.101] mlists user.mlists
436 ?? S 0:00.12 imapd: sulaco.mcslp.pri [192.168.0.101] play user.play
437 ?? S 0:01.16 imapd: sulaco.mcslp.pri [192.168.0.101] mc user.mc
507 ?? S 0:01.25 /usr/sbin/httpd
更多精彩
赞助商链接