Shell 脚本 - 管道和重定向
Posted
技术标签:
【中文标题】Shell 脚本 - 管道和重定向【英文标题】:Shell Scripting - pipes and redirection 【发布时间】:2009-07-02 18:22:08 【问题描述】:我正在使用CocoaDialog 在执行下载脚本期间提供一些反馈。我希望在我们进行命令操作时呈现一个不确定的进度条。这可以通过在操作期间将文本传送到 CocoaDialog 来实现。
http://cocoadialog.sourceforge.net/documentation.html#progressbar_control
我认为我可以使用一个命令来完成,如下所示:
exec("curl -O $PATH_DOWNLOAD > $PATH_COCOADIALOG progressbar --indeterminate");
但这不起作用。
这是一个更深入的 shell 脚本,它以不同的方式执行它:
http://cocoadialog.sourceforge.net/examples/progressbar.sh.txt
任何提示或技巧表示赞赏。
谢谢, 马特
【问题讨论】:
【参考方案1】:这行得通:
curl -O $PATH_DOWNLOAD 2>&1 | $PATH_COCOADIALOG progressbar --indeterminate
【讨论】:
【参考方案2】:你可以不用命名管道。您提到的 popen/pclose 允许您通过匿名进程与进程通信。只有在处理非相关(父/子)进程时才真正需要命名管道。
像这样:
$pipe = popen("| nameOfTheExecuable"); 写($pipe,“某事”); …… pclose($pipe);
$pipe 是可用于写入子进程标准输入的句柄。
【讨论】:
以上是关于Shell 脚本 - 管道和重定向的主要内容,如果未能解决你的问题,请参考以下文章