tty [ -a ] [ -g ] [ Options ]   stty(set tty)命令用于显示和修改当前注册的终端的属性。

UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项。 在stty中相应选项前冠以负号(-),该选项被清除;如果无负号,该选项被设置。

stty -a #将所有选项设置的当前状态写到标准输出中
old_stty_settings=`stty -g` #保存当前设置
stty "$old_stty_settings" #恢复当前设置
stty -echo #禁止回显,当您在键盘上输入时,并不出现在屏幕上
stty echo #打开回显
stty raw #设置原始输入
stty -raw #关闭原始输入
stty igncr #开启忽略回车符
stty -igncr#关闭忽略回车符

-a:以容易阅读的方式打印当前的所有配置;
-g:以stty可读方式打印当前的所有配置。在命令行下,禁止输出大写的方法:
stty iuclc     #开启
stty -iuclc    #恢复在命令行下禁止输出小写:
stty olcuc    #开启
stty -olcuc   #恢复打印出终端的行数和列数:
stty size

改变Ctrl+D的方法:
stty eof "string"  系统默认是Ctrl+D来表示文件的结束,而通过这种方法,可以改变!

忽略回车符:
stty igncr     #开启
stty -igncr    #恢复

定时输入:
timeout_read()
{
    timeout=$1
    old_stty_settings=`stty -g`  #save current settings
    stty -icanon min 0 time 100  #set 10seconds,not 100seconds
    eval read varname            #=read $varname
    stty "$old_stty_settings"    #recover settings
}

更简单的方法就是利用read命令的-t选项:
read -t 10 varname

eg1:

  1. #!/bin/sh
  2. stty -echo
  3. echo -n "Please set your password: "
  4. read p
  5. stty echo
  6. echo -e "\nYour password is: $p"

eg2:

  1. get_char()
  2. {
  3.   SAVEDSTTY=`stty -g`
  4.   stty -echo
  5.   stty raw
  6.   dd if=/dev/tty bs=1 count=1 2> /dev/null
  7.   stty -raw
  8.   stty echo
  9.   stty $SAVEDSTTY
  10. }

stty(set tty)的更多相关文章

  1. [tty与uart]stty命令使用

    中文解释链接:http://linux.51yip.com/search/stty 英文解释链接:http://pubs.opengroup.org/onlinepubs/9699919799/uti ...

  2. stty命令使用

    stty [ -a ] [ -g ] [ Options ]   stty(set tty)命令用于显示和修改当前注册的终端的属性. UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过 ...

  3. [uart]stty命令使用

    中文解释链接:http://linux.51yip.com/search/stty 英文解释链接:http://pubs.opengroup.org/onlinepubs/9699919799/uti ...

  4. Linux Ubuntu stty 使用

    stty(set tty)命令用于显示和修改当前注册的终端的属性. 该命令是一个用来改变并打印终端行设置的常用命令. stty -a #将所有选项设置的当前状态写到标准输出中 old_stty_set ...

  5. Linux学习

    Linux 命令英文全称su:Swith user 切换用户,切换到root用户cat: Concatenate 串联uname: Unix name 系统名称df: Disk free 空余硬盘du ...

  6. Linux术语全称

    bin = BINaries (binary) /dev = devices /etc = ETCetera etcetera附加的人, 附加物, 以及其它, 等等 /lib = LIBrary /p ...

  7. Linux英文全称

    su:Swith user  切换用户,切换到root用户cat: Concatenate  串联uname: Unix name  系统名称df: Disk free  空余硬盘du: Disk u ...

  8. Linux命令全称

    知其表亦需知其意 apt = Advanced Packaging Tool ar = archiver as = assembler awk = "Aho Weiberger and Ke ...

  9. 29. Xshell连接Linux下Oracle无法回退的解决办法

    使用Xshell 连接远程Linux 数据库服务器,当切换到sqlplus 控制台时,输入错误字符的时候,使用回退键修改时,显示^H. 解决方法:切换至root用户,直接输入stty erase ^H ...

随机推荐

  1. Imbalance Value of a Tree CodeForces - 915F

    链接 大意: 给定树, 求树上所有链上最大值最小值之差 817D的树上版本, 用并查集维护即可. 817D由于是链的情况并查集不必压缩路径即可达到均摊$O(n)$, 该题必须压缩, 复杂度$O(nlo ...

  2. MySQL Replication 线程(理解详细过程)

    Replication 线程 Mysql 的Replication 是一个异步的复制过程,从一个Mysql instace(我们称之为Master)复制到另一个Mysql instance(我们称之S ...

  3. bootstrap滑动开关插件使用

    下载和演示插件地址 需要引入的css和js <link rel="stylesheet" type="text/css" href="/css/ ...

  4. Python gui编程pyQt5安装步骤t

    Python gui编程pyQt5安装步骤         pip install PyQt5 Pip3 install PyQt5               https://riverbankco ...

  5. UVALive 5881

    DES:给出一个数列.然后有q个询问,对给定的区间内是否有重复的数.如果有输出任意一个重复的.如果没有输出OK. 开始以为是线段树.后来发现.只是水的比较隐蔽.感觉这个方法还是很聪明的.把每个点的最近 ...

  6. mkfs.ext3 option

    mkfs.ext3 OPTIONS -b block-size Specify  the  size  of blocks in bytes.  Valid block-size values are ...

  7. js获得焦点和失去焦点那些事

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  8. tcp/ip协议之小解释

    [转载] http://www.ruanyifeng.com/blog/2009/03/tcp-ip_model.html

  9. strtus2 文件上传

    struts2和spring mvc上传都是用 common-fileupload来实现 1.struts2上的方式需要在对应的Action,加上如下的属性以及get/set方法 private Fi ...

  10. ORA-01034:Oracle not available

    ORA-01034:Oracle not available 问题描述:ora-01034常与ora-27101同时出现,都是在登录数据库的时候报该错误 错误原因:出现ORA-01034和ORA-27 ...