shell编写的linux命令练习工具

linux常用命令加选项,有成百上个,仅仅靠背诵忘记得太快,所以写了此脚本,便于对linux命令的练习,希望能帮助到大家。

运行脚本效果如下:

shell编写的linux命令练习工具

shell编写的linux命令练习工具

上边两图一个是运行脚本时的截图,另一个为题库的格式(@做分隔符,所以如果题目中有@一定要替换掉)

下面附上源码

#!/bin/bash
#版本号:1.0

#作者:Mr.L

#WX:504498722
FILE=/root/scripts/testfile.txt      # 此为题库文本文件地址,可以改为你喜欢的地址
LINE=`wc -l < ${FILE}`
sub=””

fileAnswer() {
 MYRAND=$[$[$RANDOM%${LINE}]+1]
 sub=$(sed -n “${MYRAND}p” $FILE)
 
 answer0=$(echo $sub | cut -d”@” -f1)
 answer1=$(echo $sub | cut -d”@” -f2)
 answer2=$(echo $sub | cut -d”@” -f3)
 answer3=$(echo $sub | cut -d”@” -f4)
}

printAnswer() {
 echo “your last subject and answer is :”
 echo “$sub”
 echo “”
}

filetest() {
 fileAnswer
 echo ${answer0}
 read -p “Input your answer: ” answer
 if [ “$answer” == “$answer1” ] || [ “$answer” == “$answer2” ] || [ “$answer” == “$answer3” ];then
  echo “your answer is ok”
  echo “”
 else
  echo “your answer is not OK”
  echo “”
 fi
}

usage() {
 case $1 in
 1)
 filetest
 ;;
 2)
 printAnswer
 ;;
 3)
 filetest
 ;;
 5)
 echo “thank your answer my questions”
  exit 0
 ;;
*)
echo “bash choice”
return 9
 ;;
 esac
}

promt() {
cat<<EOF
*************************************
*                MENU                  *

*   1.Start Test                       *

*   2.Correct Answer                   *

*   3.Next Question                    *

5.exit                  by:Mr.L
*************************************
EOF
}

promt
read -p “please enter your choice: ” choice

while true;do
 usage $choice
 promt
 read -p “please enter your choice again:  ” choice
done

运行脚本后还有两个问题仍需要解决:

1.题目无法显示到菜单框图里

2.$RANDOM% 取随机数是有可能出现连续两次取到同一个数字的问题

3.CentOS7显示汉乱码,6系列显示正常

PS:如果发现脚本中的BUG或者有人解决了这两个问题,请与我联系(脚本中有我的联系方式),我也会利用闲暇时间针对上述问题作出修改。同时希望大家能共同完善脚本题库,题库我会在下周更新。


注:此脚本独家发布178Linux,更改源码或者转载请注明出处。

原创文章,作者:cnc,如若转载,请注明出处:http://www.178linux.com/71333

(2)
上一篇 2017-03-19 07:52
下一篇 2017-03-19 13:25

相关推荐

  • 密钥和公钥

    安全协议和搭建CA

    Linux干货 2018-01-09
  • Bind编译安装详解

    Bind编译安装详解 Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服…

    Linux干货 2016-07-22
  • RPM简述

    RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。 RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Win…

    Linux干货 2017-08-12
  • Linux中的文本处理工具—sed

    sed 处理文本工具 一、概述   Stream EDitor,行编辑器    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文…

    Linux干货 2016-08-10