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 07:52
下一篇 2017-03-19 13:25

相关推荐

  • shell脚本编写-4

    1、while 循环的特殊用法(遍历文件的每一行) while read line; do 循环体 done < /PATH/FROM/SOMEFILE 依次读取/PATH/FROM/SOMEFILE 文件中的每一行,且将行赋值给变量line 练习:扫描/etc/passwd 文件每一行,如发现GECOS 字段为空,则填充用户名和单位电话为629856…

    Linux干货 2016-09-01
  • 网络管理及任务进程解析

     网络管理————————————— 一.IP 地址 与路由  1.首先说的是IP地址:       它们可唯一标识IP 网络中的设备,每台主机必须具有唯…

    2017-07-02
  • shutil,csv,ini

    序列化和反序列化笔记

    2017-10-29
  • 马哥网络班21期,第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     who | cut -d " " -f1 | sort -u     who:查看当前系统所有用户的会话     cut:剪切命令       cut…

    Linux干货 2016-07-26
  • Linux 终端类型

      1、 什么是终端     终端就是用户与主机进行交互的一种介质(方式),可以是虚拟的,也可以是实体的。   2、 终端种类       (1)控制台终端(/dev/console):在Linux系统中,计算机显示器通常被称为控制台终端。Console与虚拟终端相关联…

    Linux干货 2016-10-19
  • Linux基础命令及获取命令帮助

    何为命令?         linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置She…

    Linux干货 2016-10-25