【问题标题】:What does "stty raw -echo" do on OS X“stty raw -echo”在 OS X 上做了什么
【发布时间】:2014-05-15 00:06:06
【问题描述】:

当我尝试时:$ stty raw -echo 在我的终端上(OS X 10.6 上的 Bash)。它会做一些事情,就像终端挂在那里一样。然后我查找手册:

stty — 设置终端设备接口的选项

原始(-raw)

如果设置,则更改终端的模式,以便没有输入或
进行输出处理。如果未设置,则更改 终端到一些执行输入和输出的合理状态 加工。请注意,由于终端驱动程序不再具有 单个 RAW 位,无法直观地知道设置了哪些标志 在设置原始之前。这意味着取消设置的 raw 可能不会放回 之前生效的所有设置。设置终端 进入原始状态然后准确恢复,下面的shell 推荐代码:

save_state=$(stty -g)
stty raw
...
stty "$save_state"              

回声(-echo)

回显(不回显)输入的每个字符。

所以它应该将终端转为原始模式,然后按原样返回我输入的内容?有人可以解释一下这个命令是做什么的吗?当参数有破折号时有什么区别,例如raw-raw?他们的意思是一样的吗?有什么资源可以学习吗?

【问题讨论】:

    标签: bash stty


    【解决方案1】:

    首先,破折号表示“禁用”设置。所以这启用了回显:

    stty echo
    

    这会禁用它:

    stty -echo
    

    当您禁用它时,您的输入不会回显给您,这就是为什么终端看起来好像挂起的原因。尝试stty -echo,然后输入ls 并按回车键 - 您仍然会看到ls 的输出。

    raw 设置表示不处理输入和输出,直接发送。处理可以是忽略某些字符、将字符转换为其他字符、允许中断信号等。例如,使用stty raw 你不能按 Ctrl-C 来结束进程。

    【讨论】:

      猜你喜欢
      • 2021-09-18
      • 2018-12-13
      • 2012-09-11
      • 2021-10-22
      • 2019-07-02
      • 1970-01-01
      • 2011-10-21
      • 2015-10-01
      • 1970-01-01
      相关资源
      最近更新 更多