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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux实现了一个名为shell的命令行解释器,它是用户与操作系统之间的接口。Shell可以解释用户输入的命令,并将其转换为操作系统可以理解的指令。它还可以执行脚本,自动化任务,管理文件系统等。Linux中常用的shell有Bash、Zsh、Ksh等。 ### 回答2: Shell是一个命令行解释器,用于执行操作系统的命令。Linux是一种类Unix操作系统,它支持多个Shell,例如Bash、Fish、sh和Zsh等。实现Shell可以帮助用户更高效地使用Linux系统。 在Linux中,Shell由内核提供的接口和Shell程序实现。用户可以使用Shell程序进行交互式操作系统,例如运行程序、管理文件夹和文件等。实现一个Shell程序需要遵循以下步骤: 1.解析输入命令:Shell程序将用户输入的命令解析为参数和可执行程序名称。这可以通过读取输入命令行获取,并使用字符串操作函数解析参数和命令名称。 2.执行命令:Shell程序需要执行解析后的命令。执行命令需要使用系统调用打开命令可执行文件,并将参数传递给该文件。执行命令需要考虑命令的输入输出,通常可以使用管道操作封装多个命令的输入和输出。 3.控制流程:Shell程序需要实现控制流程,例如错误处理、循环语句和条件语句等。这可以使用流程控制结构及函数实现。 4.用户交互:Shell程序需要支持用户交互,例如显示提示符、接受用户输入等。这可以通过标准输入输出和文件操作实现。 5.环境变量:Shell程序需要支持环境变量,例如用户变量、系统变量、路径变量等。这可以通过读取和设置系统环境变量实现。 为了实现高效的Shell程序,需要考虑如下方面: 1.命令行解析和参数解析的效率。 2.执行命令的效率和安全性。 3.流程控制和错误处理的完整性和健壮性。 4.用户交互和环境变量的可用性和易用性。 总之,实现Linux Shell需要多方面考虑,并需要深入了解Linux系统的内部机制和系统调用。高效、安全和易用的Shell程序可以大大提高用户使用Linux系统的效率和体验。 ### 回答3: Linux实现shell是一个非常复杂的过程,需要掌握很多相关的知识和技术。首先,需要了解shell编程语言,它是一种解释型语言,常用于Unix和Linux系统中的脚本编程。在Linux中,我们可以使用多种shell,比如bash、zsh、tcsh等。其中,bash是常用的一种shell,也是Linux系统默认的shell。 在实现shell时需要掌握的知识包括:文件系统、进程管理、管道、输入输出重定向、环境变量和命令行参数等。同时,还需要熟悉Linux系统的各种命令和工具,比如grep、sed、awk、cut、sort、uniq等等。 在实现shell时,需要将用户输入的命令解析为可执行的程序或命令。因此,需要对输入的命令进行语法分析,判断其是否合法,并解析出相关的参数和选项。接着,需要根据解析出的程序或命令,创建对应的进程,并进行进程管理。同时,需要处理输入输出重定向和管道等特殊情况。 除了处理用户命令外,还需要处理环境变量和命令行参数等。这些参数通常用于传递用户指定的特定配置信息和变量。同时,还需要支持一些内置命令,比如cd、echo、exit等。 在实现shell时,需要注意安全性和稳定性问题。为了防止安全漏洞和攻击,需要对用户输入进行过滤和验证。同时,还需要做好错误处理,确保程序能够正常运行。 总之,实现一个功能完备的shell是一项具有挑战性的任务,需要熟练掌握相关技术和工具,同时需要注意代码质量、安全性和稳定性问题。只有这样,我们才能够在Linux系统中实现高效、可靠的shell

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值