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个字符

Linux shell ”Press any key to continue ”功能实现的更多相关文章

  1. Linux脚本实现“按任意键继续/Press any key to continue”效果

    此代码来自lnmp一键安装包,用于实现“按任意键继续/Press any key to continue”效果: get_char() { SAVEDSTTY=`stty -g` #隐藏终端输入显示 ...

  2. 三星笔记本安装系统时报错:image failed to verify with * access denied* press any key to continue.

    安装系统从光盘启动报错: 出现黑屏,并且有一个提示框image failed to verify with *access denied*press any key to continue 原因:三星 ...

  3. U盘安装Ubuntu15.04 出现boot failed: please change disks and press a key to continue

    1.根据国内的教程,用Ultraiso制作了一个Ubuntu15.04的U盘启动盘,在装系统的时候提示如下错误:boot failed: please change disks and press a ...

  4. 【ubuntu】Error: environment block too small. Press any key to continue

    Error: environment block too small. Press any key to continue 如何修复这个Error呢? 输入以下命令 sudo su cd /boot/ ...

  5. 打开ubantu报错(invalid environment block. Press any key to continue)

    今天向往常一样打开ubantu ,却无法正常打开,如下图 意思是无效的环境模块,随意按键继续,按任意键后如下图 折腾了许久问题也没有得到解决,后来在某篇博客中找到了答案 https://blog.cs ...

  6. linux shell执行中需要交互输入回车,Yes/NO Y/N

    最近写自动安装脚本遇到redis-server安装的时候,需要输入3个回车,对此尝试无果,最后google比较满意的解决办法: shell 脚本需要交互,比如输入回车,输入YES/NO Y/N之类进行 ...

  7. Linux Shell 脚本

    1. 写一个脚本,利用循环计算10的阶乘#!/bin/shfactorial=1for a in `seq 1 10`do       factorial=`expr $factorial \* $a ...

  8. Linux Shell——流程控制

    1. 创建交互式脚本 使用 echo命令的选项 关于各种命令的使用,可以使用man 命令来查看命令的详细用法介绍.例如,我想看下 echo 的用法和各种选项.可以执行 man echo.执行结果如下: ...

  9. Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比

    Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比: Unix/Linux (Bash) Windows(MS-DOS) Java 进入目录 cd cd - 创建 ...

随机推荐

  1. CUtilityCode

    (1) 基于boost的生产者/消费者队列 template<typenameData> classconcurrent_queue { private: std::queue<Da ...

  2. PostgreSQL function examples

    warehouse_db=# CREATE TABLE warehouse_tbl(warehouse_id INTEGER NOT NULL,warehouse_name TEXT NOT NULL ...

  3. android Dialog重绘

    String title = ""; if(itemInfo!=null) title = "\n\""+itemInfo.itemSSID+&quo ...

  4. Opennms 问题整理

    1.网页时间显示不正确,需要修改:bin/opennms: 添加:MANAGER_OPTIONS="$MANAGER_OPTIONS -Duser.timezone=Asia/Shangha ...

  5. 基础-DP

    Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like ...

  6. nodejs回调函数

    阻塞代码实例: main.js var fs=require("fs"); var data=fs.readFileSync("1.txt"); console ...

  7. linux-bash shell学习

    什么是shell?shell就相当于是计算机给我提供的一个操作系统的接口,这里说的bash shell是一种命令行方面的软件,提供给用户来操作系统.

  8. linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

  9. 怎么通过 Mysql 实现数据同步呢?

    怎么使 mysql 数据同步先假设有主机 A 和 B ( linux 系统),主机 A 的 IP 分别是 1.2.3.4 (当然,也可以是动态的),主机 B 的 IP 是 5.6.7.8 .两个主机都 ...

  10. activiti 中文文档

    http://www.mossle.com http://www.mossle.com/docs/activiti/index.html