Bash
分離程序之間的持久 Bash 歷史記錄
我還沒有在 Bash 文件中找到這個,所以我希望如果我在這裡問它可以得到答案。有什麼方法可以在執行腳本時分支其歷史記錄(即,與呼叫腳本的父程序中的 shell 具有相同的歷史記錄,而不使用
source
或不使用.
),並且在完成後,沒有它的歷史記載在~/.bash_history
?不記錄其歷史記錄的目的是使呼叫腳本之前的最後一個命令僅成為呼叫腳本後的倒數第二個命令。這是最容易使用的嗎
set -o history
,記錄執行的命令數,然後在腳本末尾刪除那麼多行$HISTFILE
?
執行 shell 腳本將 Bash 程序作為非互動式shell 啟動。在這種模式下,歷史擴展實際上並沒有被執行。從 Bash 手冊頁,
man bash
:歷史擴展
shell 支持一個歷史擴展特性,它類似於 csh 中的歷史擴展。本節介紹可用的語法功能。互動式 shell 預設啟用此功能,並且可以使用 set 內置命令的 +H 選項禁用(請參閱下面的 SHELL BUILTIN 命令)。預設情況下,非互動式 shell 不執行歷史擴展。
我沒有看到任何提到讓腳本將其命令保存到 Bash 歷史文件中,但我從未見過這種情況在實踐中發生。
我假設您以標準方式執行腳本(作為包含 shell 命令的執行檔或通過提供腳本名稱作為 bash 命令的參數)。如果我沒有正確解釋您的問題,您可以編輯您的問題以澄清嗎?