完整版 Linux技巧:使用bash read命令实现一个简易shell( 六 )


如果输入 l 字符,则把 T-> 字符串的显示位置往右移 。
输入 h 字符,则把 T-> 字符串的显示位置往左移 。
看起来是一个左右移动的效果 。
输入 q 字符,退出该游戏 。
具体执行结果如下:
$ ./tinyshell.shtinyshell> gameNOW, ATTACK! T->T->tinyshell>由于没有回显输入字符,且始终在同一行显示 T-> 字符串,所以这个打印结果体现不出 T-> 字符串的移动,可以实际执行这个脚本,多次输入 l 、h 字符,就能看到具体效果,最后输入 q 字符退出游戏 。
总结至此,我们已经使用 read 命令来获取用户输入,模拟了一个简易的 shell 效果 。
这个简易的 shell 可以执行脚本文件,可以通过上下光标键获取到 bash 的历史命令,支持输入密码不回显,还实现了一个小游戏 。
总结 read 命令的使用关键点如下:

  • 使用 -p 选项来打印提示字符,模拟 shell 的命令行提示符
  • 使用 -e 选项在交互式 shell 中用 readline 库读取输入,可以避免输入上下光标键显示乱码
  • 使用 -s 选项指定不回显输入内容,可用于输入密码、输入游戏控制按键等情况
  • 使用 -n 1 选项指定只读取一个字符,输入字符立刻结束读取,可以在游戏中快速响应按键,不用按下回车才能响应
  • 使用 “while read” 循环来重定向读取文件,可以逐行读取文件内容,执行相应命令,就像是执行脚本文件




推荐阅读