我有一个bash脚本,它使用该read命令以交互方式读取命令的参数,例如是/否选项.有没有办法在非交互式脚本中调用此脚本将默认选项值作为参数传递?
这不仅仅是我必须传递给交互式脚本的一个选项.
我希望能够在启动交互式进程时注入初始命令,以便我可以执行以下操作:
echo "initial command" | INSERT_MAGIC_HERE some_tool
tool> initial command
[result of initial command]
tool> [now I type an interactive command]
Run Code Online (Sandbox Code Playgroud)
什么行不通:
只是管道输入初始命令不起作用,因为这导致stdin没有连接到终端
写入/ dev/pts/[number]将输出发送到终端,而不是输入到进程,就像它来自终端一样
什么会有缺点:
创建一个分叉子命令,写入stdin,然后从自己的stdin转发所有内容.下行 - 终端控制事物(如线与字符模式)不起作用.也许我可以用代理伪终端做些什么?
使用命令行选项创建xterm的修改版本(我正在为此任务启动一个),以在遇到所需的提示字符串后注入其他命令.丑陋.
制作我正在尝试运行的工具的修改版本,以便它在命令行上接受初始命令.打破标准安装.
(顺便提一下,当前感兴趣的工具是android的adb shell - 我想在手机上打开一个交互式shell,自动运行命令,然后进行交互式会话)