Como restaurar o número do comando bash \ #

2

O número do comando no bash especifica o número de comandos digitados desde o login como aquele usuário para qualquer terminal que você tenha aberto. Pode ser visto no seu PS1 com \# , como em

export PS1="\! \# \$"

Gostaria de redefinir esse número às vezes. Posso redefinir o número do histórico no bash com history -c entre outras coisas mas não consigo descobrir como redefinir o número do comando.

Eu vi alguém com PS1 que redefiniria um contador para 0 sempre que digitasse um comando com um status de saída diferente de zero. Achei engraçado e estou tentando recriá-lo, pois não consigo encontrá-lo online. Eu não gostaria de redefinir o número do histórico, pois isso também me impede de pesquisar os comandos anteriores. edit : Eu obtive essa funcionalidade sem redefinir o número do comando; veja aqui

Existe uma maneira de exibir o número do comando no bash sem o PS1, ou configurá-lo de alguma forma?

    
por jeremysprofile 30.03.2018 / 01:25

1 resposta

2

Vou dizer "não" ou "não no bash 4.4", ou "não sem alterar o código e recompilar", pois esse valor está na variável chamada current_command_number , e é apenas sempre referenciado e incrementado:

$ 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.c define como 1 duas vezes: durante a instanciação da variável e no shell_reinitialize function . Essa função também redefine o prompt, reinicializa o histórico e exclui todas as variáveis e funções. Essa função é chamada apenas uma vez, de main() .

A única visibilidade externa para essa variável está na função decode_prompt_string , que é chamada quando o prompt deve ser exibido ou exibido novamente.

    
por 30.03.2018 / 01:53

Tags