第一次写博客,心情有点小激动呢!
今天就简单来分享一下最近的关于 Linux shell 编程的两个小程序。(这里在开头先写个抱歉,程序的代码只有截图)
题目如下:
内容一:猜数游戏
实验步骤:
1) 使用cat命令新建一个shell文件,根据以下提示,构思、编写相关命令。
2) 产生一个100以内的非零、随机数;
3) 使用一个循环判断用户的输入;提示用户输入数字;判断此数是否在1-100以内,如果不在,则提醒用户重新输入;
4) 判断是否猜对,如果正确,就输出提示信息,清除相关变量并退出;如果没有猜对,给出下次猜大或猜小的温馨提示,鼓励用户继续进行猜此数的游戏。
5) 保存上述文件,执行看其运行效果。
首先是cat 的shell 命令 :
利用 cat>文件名<<终止符 命令可以在当前路径位置创建文件,可以去查一下cat 命令的一些类似查看、追加的一些其他格式。
对于产生随机数,可以利用自带的RANDOM函数进行生成变量,也可以自己定义一个函数进行生成,我是利用了第二种方法,定义一个function rand()函数进行生成。对了,这里要提醒一下shell编程新手(也是提醒下我自己)对于shell编程中利用到变量的值的时候前面要加$符号,表示取值。代码如下:
这里使用了一个产生随机数的代码date +%s%N,利用时间产生随机数,具体如下:
date +%s%N #生成19位数字
date +%s%N | cut -c6-13 #取八位数字
date +%s%N | md5sum | head -c 8 #八位字母和数字的组合
之后用另外的一个变量来接收产生的随机数:
接着就是用户猜数的环节了
利用 read 命令进行输入:
之后就是对输入和程序产生的随机数进行比较,不过比较前要先判断是否不在要求的范围内,这些判断统统写入循环内部,允许用户多次输入获得正确答案。我在这里用的是while 循环,关于整数比较命令如下:
-eq 等于,如:if [ “b” ]
-ne 不等于,如:if [ “b” ]
-gt 大于,如:if [ “b” ]
-ge 大于等于,如:if [ “b” ]
-lt 小于,如:if [ “b” ]
-le 小于等于,如:if [ “b” ]
大于(需要双括号),如:((“b”))
关于这部分的代码截图如下:
这里代码排版有点不好看,不过有点懒就不想改了。。。
之后就是输入的数字与随机数相同时输出答案正确,最后对变量进行回收,利用unset进行回收:
总的代码截图如下:
在最后写一写关于开头的#!/bin/bash的一些小东西:
比较常见的说法是:第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行
还有一种是#!/bin/sh
其实两个差不多,sh跟bash的区别,实际上就是bash有没有开启posix模式
感谢观看!