Bash 脚本调用 vi 进行手动编辑,然后脚本恢复?

Bash script calls vi for manual editing, then script resumes?

我编写了一个创建文本文件备份的脚本,以及另一个使用 SED 验证文本文件中某些语法的脚本。

中间有一个手动过程:用户编辑原始文件添加一些字符串。此过程必须保持手动。

我想合并我的两个脚本,以便创建备份,为用户打开 vi,当用户完成文件编辑后,脚本继续进行语法验证。

我正在边做边学,但真的不知道如何编写 "open vi, wait for the user to do his editing, take control over and resume with verification" 部分的代码。

我读到有一个名为 system(在 Perl 中)的函数可以使用,但我的代码在 BASH 中。

关于如何在 BASH 中完成此操作的任何建议?谢谢!

bash 中,每个语句本质上就像是对 system 的隐式调用(除非它是内置的 shell 命令),因为 shell 脚本旨在使其成为容易 运行 其他程序。

backup some_file.txt
vi some_file.txt  # The script blocks until the user exits vi
verify_syntax some_file.txt

使用 vi 和像 ls 这样的命令之间的唯一区别是 ls 会在没有用户干预的情况下完成它的工作并退出,而 vi (或任何交互式命令)将 运行 直到用户明确退出。