gpt4 book ai didi

linux - 从批处理中终止交互式程序

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:44 27 4
gpt4 key购买 nike

我有一个交互式程序 cmd,它是从批处理脚本运行的。我将输入插入为:

cmd < $"yes\n3\nn\n"

本程序cmd是第三方软件,本人无意修改。

我需要在此字符串的末尾添加一些内容以终止程序。事实上我还没有找到关闭这个程序的干净方法,到目前为止我一直用 Control+C 关闭它。如何将其插入到输入字符串的末尾?

最佳答案

假设这确实是 linux 上的 bash,我认为下面应该做你想做的:

cmd < $'yes\n3\nn\n\cD'

根据 bash hackers wiki ,在 $'' 字符串中,转义序列被扩展,并且 \cD 是 Control-D,或文件结尾。正如评论者所说,对于一个行为良好的程序,您不应该需要显式的 control-D。 cmd 实际上是什么?也许它以奇特的方式操纵终端。如果是这样,另一种选择可能是使用 kill 手动发送 SIGINTSIGHUP 到进程。像这样的东西:

cmd < $'yes\n3\nn\n &
CMD_PID=$!
sleep 10 # or however long "cmd" usually takes
kill -s SIGINT "$CMD_PID" # or SIGHUP or SIGQUIT instead of SIGINT

关于linux - 从批处理中终止交互式程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083602/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com