Bash를 사용하여 터미널에 작성한 내용을 숨길 수 있나요?
stty -echo
그러나 이는 zsh에서는 작동하지 않습니다. 이 명령을 실행해도 출력이 변경되지 않습니다.
stty -a
stty -echo
zsh에 해당하는 명령은 무엇입니까?
답변1
zsh
프롬프트로 돌아갈 때 터미널이 재설정되는 것 같습니다 . 이는 실제로 매우 유용합니다. 터미널이 손상되어 프롬프트에 갇히거나 제정신을 되찾기 위해 이상한 주문을 시전해야 하는 것을 방지하기 때문입니다.
에 따르면메일링 리스트 토론, 이를 수행하지 않도록 할 수 있지만 줄 편집을 완전히 비활성화하는 대가를 치르게 됩니다 unsetopt ZLE
.
답변2
기본적으로 현재 세션과 관련된 터미널 구성은 고정되어 있으므로 수행된 대부분의 설정은 stty
수명이 짧습니다.
zsh 문서에 따르면 이 명령을 사용하여 터미널 고정을 해제할 수 있습니다.
ttyctl -u
일반 동결 모드로 되돌리려면:
ttyctl -f
해동 모드에서는 stty
설정이 유지되어야 합니다. 그러나 그것은 사실이 아닌 것 같습니다 -echo
.
그러나 단일 명령이나 외부 프로그램에 대해 에코 문자를 일시적으로 비활성화하는 것이 목표라면 기본 동작으로 충분할 수 있습니다.
$ 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
stty
보고된 -echo
설정과 명령에 대한 응답으로 입력된 문자는 화면 read
에 반영되지 않습니다.