首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么‘`stty -a </dev/pt/0’的输出与pts/0上的‘`stty -a`’不同?

为什么‘`stty -a </dev/pt/0’的输出与pts/0上的‘`stty -a`’不同?
EN

Unix & Linux用户
提问于 2020-06-16 20:24:22
回答 1查看 382关注 0票数 0

如果我在stty -a上输入pts/0,它会显示icanon和其他标志,这是预期的。

但是,如果我从一个不是我当前所在的(bash)外壳的控制终端的终端运行stty,它就会输出-icanon。概括地说:

  • stty -a < /dev/pts/0pts/0,给icanon,和stty -a一样
  • stty -a < /dev/pts/0pts/1,给-icanon
  • stty -a < /dev/pts/1pts/1,给icanon,和stty -a一样
  • stty -a < /dev/pts/1pts/0,给-icanon

到底怎么回事?

EN

回答 1

Unix & Linux用户

发布于 2020-06-16 23:19:17

当shell的命令行编辑器处于活动状态时,终端设备的行规则不处于规范模式。当GNU Readline、ZLE、editline或其他命令行编辑库积极呈现其编辑器时,shell已将终端行规则切换到非规范模式。想想看。行编辑器对控制字符(包括特殊字符)有自己的解释,并在输入每个字符时立即响应,因此不能以任何其他方式处理终端I/O。

每次行编辑器完成一行时,都会还原规范模式。转到第一个伪终端,运行一个运行一定时间的外部命令,例如sleep,然后查看从其他伪终端报告的内容。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/593296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档