Shell Scripting - 管道和重定向

时间:2009-07-02 18:22:08

标签: bash shell redirect named-pipes

我正在使用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

任何提示或提示表示赞赏。

谢谢,
亚光

2 个答案:

答案 0 :(得分:1)

这有效:

curl -O $PATH_DOWNLOAD 2>&1 | $PATH_COCOADIALOG progressbar --indeterminate

答案 1 :(得分:0)

您可以不使用命名管道。您提到的popen / pclose允许您通过匿名方式与流程进行通信。只有在处理非相关(父/子)进程时,命名管道才真正必要。

像这样:

$ pipe = popen(“| nameOfTheExecuable”); 写($ pipe,“Something”); .... pclose函数($管);

$ pipe是您可以用来写入子流程标准输入的句柄。