gpt4 book ai didi

linux - 如何将初始输入通过管道传输到随后将是交互式的进程中?

转载 作者:IT老高 更新时间:2023-10-28 12:38:24 26 4
gpt4 key购买 nike

我希望能够将初始命令注入(inject)到交互式进程的启动中,这样我就可以执行以下操作:

echo "initial command" | INSERT_MAGIC_HERE some_tool

tool> initial command

[result of initial command]

tool> [now I type an interactive command]

什么不起作用:

  • 仅通过管道输入初始命令是行不通的,因为这会导致标准输入无法连接到终端

  • 写入/dev/pts/[number] 将输出发送到终端,而不是像来自终端一样输入到进程

会有什么缺点:

  • 创建一个命令,它派生一个 child ,写入它的标准输入,然后从它自己的标准输入转发所有内容。缺点 - 终端控制的东西(如行与字符模式)将不起作用。也许我可以通过代理伪终端来做点什么?

  • 使用命令行选项制作 xterm 的修改版本(无论如何我都会为这个任务启动一个),以便在遇到所需的提示字符串后注入(inject)额外的命令。丑。

  • 制作我正在尝试运行的工具的修改版本,以便它接受命令行上的初始命令。破坏标准安装。

(目前感兴趣的工具,顺便说一下,是android的adb shell——我想在手机上打开一个交互式shell,自动运行一个命令,然后有一个交互式 session )

最佳答案

你不需要写一个新的工具来转发stdin——一个已经写好了(cat):

(echo "initial command" && cat) | some_tool

这确实有将管道连接到 some_tool 而不是终端的缺点。

关于linux - 如何将初始输入通过管道传输到随后将是交互式的进程中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5843741/

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