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. 3-1 LVS-NAT集群

    ---- (整理)By 小甘丶 什么是集群: 集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.(Cluster就是一组计算机,它们作为一个整体向用户提供一 ...

  2. Leetcode 105

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  3. 高精度减法用string 和 stack

    #include "bits/stdc++.h" using namespace std; int main() { string a,b; while(cin >> ...

  4. Xshell如何设置,当连接断开时保留Session,保留原文字

    Xshell [1]  是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.Xshell 通过互联网到远程主机的安全连接以及它 ...

  5. Linux文件与目录管理(三)

    一.Linux文件内容查看 1.cat:由第一行开始显示文件内容 2.tac:从最后一行开始显示,可以看出tac是cat倒着写 3.nl:显示的时候,顺便输出行号 4.more:一页一页的显示文件内容 ...

  6. ios下 animation-play-state不起作用

    这个问题在 做H5音频播放的时候 困扰了好久,PC端一切正常,单单 移动端 出现各种杂乱的问题,也是醉了. 后来经过大量的检索,发现了一种方案很不错: 请看案例   原  创 完全兼容,各个设备,很不 ...

  7. CSRmesh Application

    1.CSRmesh Control Application v2.0.1版本可以运行在支持BLE4.0的Android设备上,该版本在Android4.4.4.5.0.5.0.1.5.0.2.5.1和 ...

  8. String,StringBuilder和StringBuffer的特点和使用场景

    这三个类是平时开发中经常遇到的,主要差别是运行速度和线程安全,使用起来String最方便了,另外两个稍微复杂一些. 从运行速度角度看,StringBuilder>StringBuffer> ...

  9. 逆向路由器固件之敏感信息泄露 Part2

    之前的文章中详细介绍了各种解包路由器固件的工具.解包之后就获得了固件中的文件.下一步就是分析文件寻找漏洞了.这次分析的目标是Trendnet路由器,分析的漏洞是一个远程获取路由器权限的漏洞. 初步分析 ...

  10. 炸掉你的城堡!(pygame獾兔大战)

    代码修改bug,添加注释等,獾的速度加快之后很难-- git地址: https://github.com/Jailman/blowupyrcastle.git 游戏资源使用了文章中附带的下载,原版文章 ...