Bash コマンド番号をリセットする方法\#

Bash コマンド番号をリセットする方法\#

Bashのコマンド番号は、そのユーザーとして開いた端末にログインしてから入力されたコマンドの数を指定します。 PS1で見ることができます\#

export PS1="\! \# \\$"

時々この番号をリセットしたい時があります。 Bashで履歴番号をリセットできますか?history -c 他のものの間しかし、命令番号をリセットする方法がわかりません。

私はPS1を使用している誰かがゼロ以外の終了状態でコマンドを入力するたびにカウンタをゼロにリセットするのを見ました。私はこれが興味深いと思い、オンラインで見つけることができないので、それを再作成しようとしています。過去のコマンドを検索できなくなるため、履歴番号をリセットしたくありません。編集する:コマンド番号をリセットせずにこの機能を使用できます。ねえ

PS1なしでbashにコマンド番号を表示したり、何とか設定する方法はありますか?

ベストアンサー1

「いいえ」、「bash 4.4にはありません」、または「コードを変更して再コンパイルしないと不可能です」と言います。値は変数という名前にあり、current_command_number参照と増加のみが可能であるためです。

$ grep -r current_command_number *.c
eval.c:extern int current_command_number, current_command_line_count, line_number;
eval.c:       current_command_number++;
shell.c:int current_command_number = 1;
shell.c:  current_command_number = 1;
y.tab.c:extern int current_command_number;
y.tab.c:              temp = itos (current_command_number);

shell.c1に2回設定します。変数のインスタンス化中およびshell_reinitialize機能。この関数はプロンプトをリセットし、履歴を再初期化し、すべての変数と関数を削除します。この関数は一度だけ呼び出されますmain()

この変数の唯一の外部可視性は、プロンプトが表示またはdecode_prompt_string再表示される必要があるときに呼び出される関数内にあります。

おすすめ記事