[英]Open and close txt files with emacs in bash script
我編寫了一個腳本,該腳本打開了我在工作期間需要的幾個文本文件(例如日記本等)。 該腳本如下所示:
#! /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文件中執行CX C,因為我可能也會向“ opening”腳本中添加新文件。
請更多有經驗的人幫助我。 謝謝!
這有點駭人聽聞,但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
可以是任何阻止腳本完成並且可以輕易殺死的命令。
您必須使用bash嗎? 在Emacs lisp中很容易:
(defun open-files ()
(interactive)
(find-file "UTA_WorkProtocol.txt")
(find-file "NumProtocol.txt")
(find-file "CITCOM/Protocol.txt"))
(defun close-files ()
(interactive)
(save-buffers-kill-emacs)
然后打開一個Emacs實例並在Mx
運行這些命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.