zoukankan      html  css  js  c++  java
  • Linux shell ”Press any key to continue ”功能实现

    function process_continue()
    {
      SAVESTTY=`stty -g`
      stty cbreak
      dd if=/dev/tty bs=1 count=1 > /dev/null 2>&1
      stty -cbreak
      stty $SAVESTTY
    }

    echo "Press any key to continue..."

    process_continue

    不用敲击回车输入字符:

    function read_chars()
    {
      SAVESTTY=`stty -g`
      stty cbreak
      dd if=/dev/tty bs=1 count=3 2>/dev/null -从屏幕输入多个字符的时候bs为1,count可为多个,因为每次键入都算一次块输入
      stty -cbreak
      stty $SAVESTTY
    }

    DUMP=`read_chars`

    echo $DUMP

    关于dd命令:http://blog.chinaunix.net/uid-24958038-id-3416169.html

    dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

    示例: dd if=./test1.txt of=./test2.txt bs=4 count=1 2>dev/null  - 从./test1.txt中拷贝1个块大小为4byte的内容到./test2.txt中,2>dev/null 是将去掉dd的一些默认输出。

    关于stty:http://blog.chinaunix.net/uid-2522786-id-223518.html

    stty:设置终端属性

    cbreak 同 -icanon 
    -cbreak 同 icanon 

    -icanon, 设置一次完整的读操作最小为N个字符 

    如果我能一直坚持下去,就像坚持当初的梦想一样,或许我也能成为大神呢,哈哈哈。
  • 相关阅读:
    第一次热身赛和正式比赛感想
    简明解释算法中的大O符号
    poj 3045
    poj 3104
    poj 3273
    poj 3258
    poj 2456
    二分法小结
    Poj 2718 Smallest Difference
    GCJ——Crazy Rows (2009 Round 2 A)
  • 原文地址:https://www.cnblogs.com/faraway-tiny/p/4959200.html
Copyright © 2011-2022 走看看