当从GUI运行而不是bash shell时,管道在bash脚本中不起作用

时间:2013-01-19 05:46:30

标签: xcode bash piping

作为构建过程的一部分,我正在尝试使用hdiutil安装DMG。

我已经编写了一个shell脚本来执行此操作,并且由于hdiutil在打开之前要求确认许可协议,因此我在脚本中有yes | hdiutil ...之类的内容。当我从像Terminal.app这样的bash shell运行脚本时,没有任何问题,并且该过程按预期工作。

但是,当我向Xcode添加“外部构建系统”目标并让/ bin / bash运行我的脚本时,它会在执行hdiutil命令后永久挂起。

我猜测yes没有终止;当GUI应用程序调用脚本而不是交互式bash shell时,会导致这种情况有何不同?如何使用这两种方法使其工作?

1 个答案:

答案 0 :(得分:0)

我需要使用echo y | hdiutil代替yes | hdiutil,如@trojanfoe所建议。