我設定了export HISTSIZE=99999999999999
,但這是最好的方法嗎?不知道會不會出現溢出。我正在尋找一種經過測試的可靠方法來消除命令歷史記錄限制。
答案1
真的是不是(很好)有記錄,我猜這個計劃中 99% 的 bash 用戶確實將 HISTSIZE 設定為一個非常大的數字。
在 GNU bash 中,歷史記錄是透過強大的 readline 庫處理的。該函式庫可以選擇是否限制歷史記錄大小(readline 術語中的「stifle」),bash 只是將 readline 歷史記錄設為 stifled/unstifled。如果您查看例如 GNU bash version 4.2,檔案variables.c,第 4443 行,函數 void sv_histsize (char*),您會發現此註解(以及後面函數中的整個令人窒息/不令人窒息的內容):
/* HISTSIZE 或 HISTFILESIZE 變數變更後要執行的操作。
如果此 HISTSIZE 有一個值(並且它是數字),則扼殺歷史記錄。否則,如果該變數沒有值,則
取消歷史記錄。如果名稱為 HISTFILESIZE,且其值為
數字,則截斷歷史檔案以容納不超過那麼多
行。 */
所以這應該可以解決問題:
export HISTSIZE=""
還有這個(如果你感到挑釁的話):
export HISTSIZE="GOTCHA"
希望這可以幫助。