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



作为我的构建过程的一部分,我试图使用hdiutil挂载DMG。

我已经写了一个shell脚本来做到这一点,因为hdiutil在打开之前要求确认许可协议,我在我的脚本中有类似yes | hdiutil ...的东西。当我从像Terminal这样的bash shell中运行脚本时。应用程序没有任何问题,过程按预期工作。

然而,当我添加一个"外部构建系统"的目标到Xcode,并有/bin/bash运行我的脚本,它永远挂在执行hdiutil命令后。

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

我需要使用echo y | hdiutil而不是@trojanfoe建议的yes | hdiutil

最新更新