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)
cnccnc
上一篇 2017-03-19
下一篇 2017-03-19

相关推荐

  • 软件包管理2

    四、程序包编译     程序包编译安装:     Application-VERSION-release.src.rpm –> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装     源代码&#82…

    Linux干货 2016-08-27
  • 22期第五周课堂练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又…

    Linux干货 2016-09-08
  • 马哥linux0803作业内容

    1. 创建sysadmins组 将用户user1,user2,user3加入sysadmins组中 将user3设置为sysadmins的管理员 用user3登录,将user2从组中移除 设置sysadmins的密码centos 设置user1 在创建新文件时,文件的所属组为sysadmins 删除user1…3 删除sysadmins 2、三种权限rwx对…

    Linux干货 2016-08-05
  • 课堂练习及课后作业(0805文本处理工具)

    课堂练习: 1、找出ifconfig命令结果中本机的所有IPv4地址 2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示 5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序 grep 1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式…

    Linux干货 2016-08-07
  • RAID,pv,vg,lv的实验

    首先在虚拟机中添加5块硬盘,以备实验使用,此实验以sdc,sdd,sde,sdf,sdg硬盘为例:     添加硬盘:(不用重新启动虚拟机读取新添加磁盘)             ~]# echo “- – -” > /sys/class…

    Linux干货 2017-03-19
  • 正则表达式字符集

    POSIX Description ASCII Unicode Shorthand Java [:alnum:] Alphanumeric characters [a–zA–Z0–9] [\p{L}\p{Nl}  \p{Nd}] \p{Alnum} [:alpha:] Alphabetic characters …

    Linux干货 2017-07-07