履歴 -c は $HITCMD を 1 にリセットしません。

履歴 -c は $HITCMD を 1 にリセットしません。

要約:レコードが切り捨てられた場合(HISTSIZEレコードが400で、レコード番号が500の場合)、レコードをリセットすると、レコードの行数が消去またはhistory -c減少し、レコード番号からその行が減算されます。HISTSIZEただし、0にリセットされません(この場合は100にリセットされます)。過去の数字を再びゼロに完全にリセットするにはどうすればよいですか?


バッシュ4.2(および4.4)。私の記録番号が4桁未満であることを望みます。関連bashrcセクション:

HISTSIZE=99
HISTFILESIZE=100
#ignores back-to-back duplicate commands, not those that start with a space
HISTCONTROL=ignoredups
#ignore commands fewer than 5 characters long because we can type those
HISTIGNORE="?:??:???:????:?????:history"

history\!PS1で見られる歴史的な数字は明らかにこの値を超えるでしょう。記録数が1,000を超える場合は、記録数を〜100にリセットできるようにしたいです。

history -c端末の履歴を消去しますが、消去されたコマンド数だけ記録数を減らします。例:

j:~$ history | wc -l
99
j:~$ echo $HISTFILESIZE
100
j:~$ echo $HISTCMD 
1203
j:~$ history -c
j:~$ echo $HISTCMD
1106

だから...履歴番号をより小さい数字(例えば$HIST(FILE)SIZEtmuxセッション内)に下げるにはどうすればよいですか?しかし、問題にはなりません。

また、現在使用しているものよりもパイプ操作が少ない変数で現在の履歴番号を取得する方法はありますか?編集:Jeffが述べたように、$HISTCMDこの値を保存してください。

提供されたソリューションのどれも機能しません。方法は次のとおりですset -x

History -c は履歴を消去しません。

関連情報