Bash 명령 번호를 재설정하는 방법\#

Bash 명령 번호를 재설정하는 방법\#

Bash의 명령 번호는 해당 사용자로 연 터미널에 로그인한 이후 입력된 명령 수를 지정합니다. PS1에서 볼 수 있습니다 \#.

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

가끔 이 번호를 재설정하고 싶을 때가 있어요. Bash에서 기록 번호를 재설정할 수 있나요?history -c 다른 것들 사이그런데 명령어 번호를 재설정하는 방법을 모르겠습니다.

나는 PS1을 사용하는 누군가가 0이 아닌 종료 상태로 명령을 입력할 때마다 카운터를 0으로 재설정하는 것을 본 적이 있습니다. 나는 이것이 흥미롭다고 생각했고 온라인에서 찾을 수 없기 때문에 그것을 다시 만들려고 노력하고 있습니다. 과거 명령을 검색하지 못하게 되므로 기록 번호를 재설정하고 싶지 않습니다.편집하다:명령 번호를 재설정하지 않고 이 기능을 사용할 수 있습니다.이봐

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로 두 번 설정합니다: 변수 인스턴스화 도중 및shell_reinitialize기능. 이 함수는 또한 프롬프트를 재설정하고 기록을 다시 초기화하며 모든 변수와 함수를 삭제합니다. 이 함수는 한 번만 호출됩니다 main().

이 변수의 유일한 외부 가시성은 decode_prompt_string프롬프트가 표시되거나 다시 표시되어야 할 때 호출되는 함수 내에 있습니다.

관련 정보