Bash在 –init-file 中設置
在 –init-file 中設置history -r
如果我進入我的 bash shell
touch $HOME/tmp echo "last thing" >> $HOME/tmp history -r $HOME/tmp
然後按向上箭頭,我看到“最後一件事”。
如果我在腳本中粘貼相同的行並獲取腳本,那麼我會得到同樣的結果。
但是,如果我這樣做,它將不起作用
bash --init-file <(echo "history -r $HOME/tmp")
--init-file
首先處理,然後${HISTFILE:-$HOME/.bash_history}
正常載入的內容。如果該文件包含$HISTSIZE
條目(通常是這種情況),則載入的條目將history -r tmp
被推離歷史列表的開頭並失去。以下變體對我有用(在 CentOS 上的 4.1.2 中):
bash --init-file <(echo history -r temp; echo HISTFILE=/dev/null) # in new shell history contains only the line(s) from temp bash --init-file <(echo history -r temp; echo let HISTSIZE+=100) # in new shell history contains the line(s) from temp THEN .bash_history