当我尝试:$ stty raw -echo在我的终端(Bash在OSX10.6)。就像终端机挂在那里一样。然后我查找手册:
设置终端设备接口的选项。 raw (-raw) 如果已设置,请更改终端的模式,以便没有输入或 执行输出处理。如果未设置,则将终端的模式更改为执行输入和输出处理的合理状态。请注意,由于终端驱动程序不再具有单个raw位,因此无法直观地了解在设置RAW之前设置了哪些标志。这意味着取消设置raw可能不会将以前生效的所有设置放回。要将终端设置为原始状态,然后准确地还原它,建议使用以下shell代码: save_state=$(stty -g) .stty "$save_state“echo (-echo) 回显(不回显)键入的每个字符。
所以它应该在原始模式下打开终端,然后返回我输入的内容。有人能解释一下这条命令是干什么的吗?当一个论点有破折号时,有什么区别,例如raw和-raw?他们说的是拯救法吗?有什么我能学到的资源吗?
发布于 2014-04-03 12:27:01
首先,破折号的意思是“禁用”设置。因此,这允许回音:
stty echo这将禁用它:
stty -echo当您禁用它时,您的输入不会回显给您,这就是为什么似乎终端挂起了。尝试stty -echo,然后键入ls并按返回键--您仍将看到ls的输出。
raw设置意味着输入和输出没有处理,只是直接发送。处理可以是忽略某些字符,将字符转换为其他字符,允许中断信号等。因此,使用stty raw,您不能点击Ctrl来结束一个进程。
https://stackoverflow.com/questions/22832933
复制相似问题