【问题标题】:Bash script calls vi for manual editing, then script resumes?Bash 脚本调用 vi 进行手动编辑,然后脚本恢复?
【发布时间】:2023-04-06 23:40:01
【问题描述】:

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

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

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

我正在边做边学,但真的不知道如何编写“打开vi,等待用户进行编辑,接管并恢复验证”部分。

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

关于如何在 BASH 中完成这项工作有什么建议吗?谢谢!

【问题讨论】:

    标签: bash automation text-editor vi


    【解决方案1】:

    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
    

    使用vils 之类的命令之间的唯一区别是ls 将在没有用户干预的情况下执行其操作并退出,而vi(或任何交互式命令)将一直运行直到用户明确退出.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      • 2014-03-27
      • 2023-01-08
      • 2014-08-29
      • 2018-07-05
      • 2012-11-18
      • 2019-10-31
      相关资源
      最近更新 更多