Por padrão, a configuração do terminal associada à sessão atual é congelada, portanto, a maioria das configurações feitas com stty
é efêmera.
De acordo com a documentação do zsh, você pode descongelar seu terminal com este comando
ttyctl -u
e reverta para o modo normal congelado com:
ttyctl -f
No modo não congelado, as configurações de stty
devem persistir. Não parece ser o caso com -echo
.
No entanto, se sua meta for desativar temporariamente os caracteres de eco para um único comando ou um programa externo, o comportamento padrão poderá ser suficiente:
$ stty -echo;stty -a;read foo
speed 38400 baud; rows 44; columns 165; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
$ echo $foo
abc
Observe que stty
informa a configuração -echo
e os caracteres digitados em resposta ao comando read
não foram reproduzidos na tela.