0

我的程序运行(执行..)一个外部程序。运行时,外部程序要求用户 [Yes/No] 继续下一步。

我如何从我的程序将 [Yes] 传递给外部程序,而不是在命令行中键入 [yes]。

4

2 回答 2

1

在命令行上提供“是”响应的经典方式是一个-y选项(通常使用一个并行-n选项来指示“否” - 请参阅 参考资料fsck(1))。

也有争论的余地,运行程序应该是“是的,我的意思是这样做”的操作。但是,有时指定“是的,我真的打算这样做”是有意义的(例如一次性初始化 DBMS 实例)。

于 2012-09-04T02:43:12.480 回答
1

除非外部程序支持相应的标志(请参阅@Jonathan Leffler 的答案),否则您可以控制该程序的源并可以添加它,您必须模拟“是”输入。

选项:

  • yes尝试通过将帮助应用程序的输出通过管道传输到它的 stdin: 来启动外部程序yes | external_programyes是一个简单的工具,如果你没有它,它只会不断地将“y”写入它的标准输出。

  • 手动将“是”写入外部程序的标准输入。

这两个选项都要求您以一种或另一种方式使用管道。有关如何执行此操作的更多信息,请参阅此内容。

于 2012-09-04T05:02:33.640 回答