Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的程序运行(执行..)一个外部程序。运行时,外部程序要求用户 [Yes/No] 继续下一步。
我如何从我的程序将 [Yes] 传递给外部程序,而不是在命令行中键入 [yes]。
在命令行上提供“是”响应的经典方式是一个-y选项(通常使用一个并行-n选项来指示“否” - 请参阅 参考资料fsck(1))。
-y
-n
fsck(1)
也有争论的余地,运行程序应该是“是的,我的意思是这样做”的操作。但是,有时指定“是的,我真的打算这样做”是有意义的(例如一次性初始化 DBMS 实例)。
除非外部程序支持相应的标志(请参阅@Jonathan Leffler 的答案),否则您可以控制该程序的源并可以添加它,您必须模拟“是”输入。
选项:
yes尝试通过将帮助应用程序的输出通过管道传输到它的 stdin: 来启动外部程序yes | external_program。yes是一个简单的工具,如果你没有它,它只会不断地将“y”写入它的标准输出。
yes
yes | external_program
手动将“是”写入外部程序的标准输入。
这两个选项都要求您以一种或另一种方式使用管道。有关如何执行此操作的更多信息,请参阅此内容。