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个字符
Linux shell ”Press any key to continue ”功能实现的更多相关文章
- Linux脚本实现“按任意键继续/Press any key to continue”效果
此代码来自lnmp一键安装包,用于实现“按任意键继续/Press any key to continue”效果: get_char() { SAVEDSTTY=`stty -g` #隐藏终端输入显示 ...
- 三星笔记本安装系统时报错:image failed to verify with * access denied* press any key to continue.
安装系统从光盘启动报错: 出现黑屏,并且有一个提示框image failed to verify with *access denied*press any key to continue 原因:三星 ...
- 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 ...
- 【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/ ...
- 打开ubantu报错(invalid environment block. Press any key to continue)
今天向往常一样打开ubantu ,却无法正常打开,如下图 意思是无效的环境模块,随意按键继续,按任意键后如下图 折腾了许久问题也没有得到解决,后来在某篇博客中找到了答案 https://blog.cs ...
- linux shell执行中需要交互输入回车,Yes/NO Y/N
最近写自动安装脚本遇到redis-server安装的时候,需要输入3个回车,对此尝试无果,最后google比较满意的解决办法: shell 脚本需要交互,比如输入回车,输入YES/NO Y/N之类进行 ...
- Linux Shell 脚本
1. 写一个脚本,利用循环计算10的阶乘#!/bin/shfactorial=1for a in `seq 1 10`do factorial=`expr $factorial \* $a ...
- Linux Shell——流程控制
1. 创建交互式脚本 使用 echo命令的选项 关于各种命令的使用,可以使用man 命令来查看命令的详细用法介绍.例如,我想看下 echo 的用法和各种选项.可以执行 man echo.执行结果如下: ...
- Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比
Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比: Unix/Linux (Bash) Windows(MS-DOS) Java 进入目录 cd cd - 创建 ...
随机推荐
- CUtilityCode
(1) 基于boost的生产者/消费者队列 template<typenameData> classconcurrent_queue { private: std::queue<Da ...
- PostgreSQL function examples
warehouse_db=# CREATE TABLE warehouse_tbl(warehouse_id INTEGER NOT NULL,warehouse_name TEXT NOT NULL ...
- android Dialog重绘
String title = ""; if(itemInfo!=null) title = "\n\""+itemInfo.itemSSID+&quo ...
- Opennms 问题整理
1.网页时间显示不正确,需要修改:bin/opennms: 添加:MANAGER_OPTIONS="$MANAGER_OPTIONS -Duser.timezone=Asia/Shangha ...
- 基础-DP
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like ...
- nodejs回调函数
阻塞代码实例: main.js var fs=require("fs"); var data=fs.readFileSync("1.txt"); console ...
- linux-bash shell学习
什么是shell?shell就相当于是计算机给我提供的一个操作系统的接口,这里说的bash shell是一种命令行方面的软件,提供给用户来操作系统.
- linux运维自动化shell脚本小工具
linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...
- 怎么通过 Mysql 实现数据同步呢?
怎么使 mysql 数据同步先假设有主机 A 和 B ( linux 系统),主机 A 的 IP 分别是 1.2.3.4 (当然,也可以是动态的),主机 B 的 IP 是 5.6.7.8 .两个主机都 ...
- activiti 中文文档
http://www.mossle.com http://www.mossle.com/docs/activiti/index.html