上矢印をクリックすると、履歴は循環しません。

上矢印をクリックすると、履歴は循環しません。

私はUnix&Linuxに初めて触れ、他の質問に対するすでに詳細なアプローチについてコメントしたいと思いました。私の担当者は50歳未満なので(悲しいことに)そうすることはできません。私はこの問題に対する解決策を試しました。複数の端末ウィンドウでbash履歴を保持する

export HISTCONTROL=ignoredups:erasedups  # no duplicate entries
export HISTSIZE=100000                   # big big history
export HISTFILESIZE=100000               # big big history
shopt -s histappend                      # append to history, don't overwrite it

# Save and reload the history after each command finishes
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

残念ながら、結果は増加する(マージされた)記録(希望)がありますが、新しいウィンドウで「上向き矢印」(予想なし)を使用してその履歴を循環させることはできません。つまり、新しいウィンドウで実行されるコマンドのみを繰り返すことができます。たとえば、新しい端末を開いて500行の履歴を受け取ると、3つのコマンドを実行し、上矢印を使用してこの501-503のみを循環できます。

新しい端末を開き、次の操作を行います。

$ history #enter
  .
  .
  584 foo
  585 bar
  .
  .
  600 baz

$ history #enter

  1 history

なぜこれが起こるのか説明できますか?回避策がありますか?ありがとうございます。

ベストアンサー1

私が投稿したリンクのコメントセクションからソリューションに移動することは可能です。Bash 履歴: 'ignoredups' および 'erasedups' 設定がセッション全体の共通履歴と競合します。

代わりに:

export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

使用:

PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"

おすすめ記事