linux - 在 bash 脚本中使用 emacs 打开和关闭 txt 文件

标签 linux bash shell emacs

我写了一个脚本,可以打开我工作期间需要的几个文本文件(例如期刊等)。脚本如下所示:

#! /bin/bash

DOCPATH=$HOME/Documents
NUMDOCPATH=$DOCPATH/Numerics

emacs $DOCPATH/UTA_WorkProtocol.txt &

emacs $NUMDOCPATH/NumProtocol.txt &

emacs $NUMDOCPATH/CITCOM/Protocol.txt &

工作正常,文件已正确打开。但是,最后我想创建另一个脚本来再次保存和关闭这些文件。但是,我一直无法找到任何命令来保存和/或关闭使用 bash 脚本在后台运行的打开的 emacs 文件。我会更方便地运行这样的脚本,而不是在每个 txt 文件中执行 C-X C-s,因为我也可能将新文件添加到“打开”脚本中。

请有经验的人帮我解决一下。谢谢!

最佳答案

这有点hack,但是bash脚本并不真正适合这种类型的 UI 脚本。

#! /bin/bash

DOCPATH=$HOME/Documents
NUMDOCPATH=$DOCPATH/Numerics

emacs $DOCPATH/UTA_WorkProtocol.txt &
emacs $NUMDOCPATH/NumProtocol.txt &
emacs $NUMDOCPATH/CITCOM/Protocol.txt &

emacs   # *Not* in the background
kill $(jobs -p)

当您准备好关闭所有后台的 emacs 实例时,只需关闭前台的那个即可。这将导致最终的 emacs退出,这将允许脚本继续到 kill命令,这将终止剩余的后台作业。

注意最后的 emacs可以是阻止脚本完成并且可以很容易地自行终止的任何命令。

关于linux - 在 bash 脚本中使用 emacs 打开和关闭 txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39777323/

相关文章:

c++ - LD_LIBRARY_PATH 不工作,而 LD_PRELOAD 工作正常

bash - $* 和 * 在 bash 脚本中到底代表什么?

bash - 如何知道 PBS 批处理作业何时完成

shell - 在服务器上作为后台进程运行 java jar 文件

shell -/bin/sh 中的 $FUNCNAME 替代

c - Linux 获取上下文切换时序

python - 逐行比较两个大文件

arrays - 如何将数组转换为逗号分隔的字符串?

linux - linux下安装jdk

linux - 标准的 linux sed 在 mac 中不工作