我有一个现有的脚本test.sh
,它执行一些操作,然后最终在 vi 中打开一个文件。我无法对此现有脚本进行任何更改。当我运行第一个脚本时,它会在 vi 中打开一个文本文件。现在我有另一个脚本可以运行现有的脚本test.sh
。它在 vi 中打开一个文件。我如何:wq
从脚本内部?有可能吗?
答案1
如果您需要模拟与需要终端的程序的通信,请查找expect
为此而制作的程序,它添加命令以tcl
允许控制另一个程序并通过伪终端与其进行通信。
答案2
我建议看一下ex
编辑vi
,这是交互式可视化编辑器的基础。
ex
可以轻松地以非交互方式编辑文件,这对于脚本来说是完美的。
我本想回答一个更长的问题,但是vi 堆栈交换已经有一个好的了,在https://vi.stackexchange.com/questions/788/how-to-edit-files-non-interactively-eg-in-pipeline。