`stty --file=의 효과 `는 bash의 콘솔에 대해서만 임시입니다. 왜?

`stty --file=의 효과 `는 bash의 콘솔에 대해서만 임시입니다. 왜?

두 개의 콘솔/X 터미널을 엽니다. /dev/tty1(Linux 콘솔) 또는 /dev/pts/0(X 터미널) 에 연결된 하나에서 $ stty -echo.(키보드 에코가 꺼졌습니다.) 그런 다음 다른 하나에서 실행하십시오 $ stty --file=/dev/tty1 echo.

이제 첫 번째 터미널에 뭔가를 입력해 보세요. 에코는 맞습니다. 마침내 stty효과가 나타났습니다. 그러나 Enter 키를 누르면 -echo해당 상태로 되돌아갑니다. 왜 이런거야? 영구적인 변화가 가능한가요?

적어도 "echo/-echo"에서는 작동하지 않습니다. stty 플래그의 특정 조합에서는 작동하지 않습니다. 동일한 터미널에서 "$stty --file="을 실행하면 영구적으로 영향을 미칩니다.

Zsh에는 stty에 대한 자체 전략이 있습니다. 바라보다이 문제

편집: 첫 번째 게시물에서는 이것이 bash에서는 발생하지만 대시에서는 발생하지 않는다고 보고하지 못했습니다. zsh 케이스에 대한 언급도 추가되었습니다.

답변1

쉘에서는 명령줄을 편집하는 데 도움을 주기 위해 이 작업을 수행합니다.

bash의 readline 라이브러리는 터미널 모드를 저장/복원합니다. 당신은 할 수 있습니다rl_prep_terminal그리고rl_deprep_terminal함수, 간접 호출edit_and_execute_command.

관련 정보