博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux shell ”Press any key to continue ”功能实现
阅读量:5314 次
发布时间:2019-06-14

本文共 726 字,大约阅读时间需要 2 分钟。

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命令:

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:

stty:设置终端属性

cbreak 同 -icanon 

-cbreak 同 icanon 

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

转载于:https://www.cnblogs.com/faraway-tiny/p/4959200.html

你可能感兴趣的文章
python查询mangodb
查看>>
consonant combination
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
Swagger简单介绍
查看>>
Python数据分析入门案例
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
内存地址对齐
查看>>
JavaScript介绍
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>
16下学期进度条2
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
Chapter 3 Phenomenon——12
查看>>
和小哥哥一起刷洛谷(1)
查看>>
遇麻烦,Win7+Ubuntu12.10+Archlinux12.10 +grub
查看>>
SqlBulkCopy大批量导入数据
查看>>
pandas 修改指定列中所有内容
查看>>
「 Luogu P2285 」打鼹鼠
查看>>