O efeito de 'stty --file = terminal flag' é apenas temporário para consoles no bash. Por quê?

3

Abra dois consoles / terminais X. A partir de um, que está ligado a /dev/tty1 (console Linux) ou /dev/pts/0 (terminal X), execute $ stty -echo . (Agora, o eco do keyboad está desativado.) Depois, do outro, execute $ stty --file=/dev/tty1 echo .

Agora digite algo no primeiro terminal. Ele ecoa, ok, o último stty entrou em vigor. Mas uma vez que você pressiona a tecla Enter, ela reverte para -echo state. Por que é isso? Uma mudança permanente é possível?

Isso não se aplica a algumas combinações de sinalizadores stty, pelo menos não para 'echo / -echo'. Quando '$ stty --file =' é executado no mesmo terminal, isso afeta permanentemente.

N.B. Zsh tem sua própria política para stty. Veja esta pergunta

EDIT: No primeiro post, eu não consegui relatar que isso acontece no bash, mas não no traço. A menção ao caso zsh também foi adicionada.

    
por teika kazura 19.02.2017 / 08:54

1 resposta

2

Seu shell faz isso para ajudá-lo a editar as linhas de comando.

A biblioteca readline do bash salva / restaura os modos do terminal. Você pode ver isso no rl_prep_terminal e rl_deprep_terminal funções, chamadas indiretamente de edit_and_execute_command .

    
por 19.02.2017 / 17:07

Tags