第一次写博客,心情有点小激动呢!
今天就简单来分享一下最近的关于 Linux shell 编程的两个小程序。(这里在开头先写个抱歉,程序的代码只有截图)
题目如下:
内容一:猜数游戏
实验步骤:
1) 使用cat命令新建一个shell文件,根据以下提示,构思、编写相关命令。
2) 产生一个100以内的非零、随机数;
3) 使用一个循环判断用户的输入;提示用户输入数字;判断此数是否在1-100以内,如果不在,则提醒用户重新输入;
4) 判断是否猜对,如果正确,就输出提示信息,清除相关变量并退出;如果没有猜对,给出下次猜大或猜小的温馨提示,鼓励用户继续进行猜此数的游戏。
5) 保存上述文件,执行看其运行效果。
首先是cat 的shell 命令 :
利用 cat>文件名<<终止符 命令可以在当前路径位置创建文件,可以去查一下cat 命令的一些类似查看、追加的一些其他格式。
对于产生随机数,可以利用自带的RANDOM函数进行生成变量,也可以自己定义一个函数进行生成,我是利用了第二种方法,定义一个function rand()函数进行生成。对了,这里要提醒一下shell编程新手(也是提醒下我自己)对于shell编程中利用到变量的值的时候前面要加$符号,表示取值。代码如下:
关于shell的两道小练习题之一:猜数游戏
这里使用了一个产生随机数的代码date +%s%N,利用时间产生随机数,具体如下:
date +%s%N #生成19位数字
date +%s%N | cut -c6-13 #取八位数字
date +%s%N | md5sum | head -c 8 #八位字母和数字的组合

之后用另外的一个变量来接收产生的随机数:
关于shell的两道小练习题之一:猜数游戏
接着就是用户猜数的环节了
利用 read 命令进行输入:

关于shell的两道小练习题之一:猜数游戏
之后就是对输入和程序产生的随机数进行比较,不过比较前要先判断是否不在要求的范围内,这些判断统统写入循环内部,允许用户多次输入获得正确答案。我在这里用的是while 循环,关于整数比较命令如下:
-eq 等于,如:if [ “a&quot;eq&quot;a&quot; -eq &quot;b” ]
-ne 不等于,如:if [ “a&quot;ne&quot;a&quot; -ne &quot;b” ]
-gt 大于,如:if [ “a&quot;gt&quot;a&quot; -gt &quot;b” ]
-ge 大于等于,如:if [ “a&quot;ge&quot;a&quot; -ge &quot;b” ]
-lt 小于,如:if [ “a&quot;lt&quot;a&quot; -lt &quot;b” ]
-le 小于等于,如:if [ “a&quot;le&quot;a&quot; -le &quot;b” ]
大于(需要双括号),如:((“a&quot;&gt;&quot;a&quot; &gt; &quot;b”))
关于这部分的代码截图如下:
关于shell的两道小练习题之一:猜数游戏
这里代码排版有点不好看,不过有点懒就不想改了。。。

之后就是输入的数字与随机数相同时输出答案正确,最后对变量进行回收,利用unset进行回收:
关于shell的两道小练习题之一:猜数游戏
总的代码截图如下:
关于shell的两道小练习题之一:猜数游戏
在最后写一写关于开头的#!/bin/bash的一些小东西:
比较常见的说法是:第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行
还有一种是#!/bin/sh
其实两个差不多,sh跟bash的区别,实际上就是bash有没有开启posix模式

感谢观看!

相关文章:

  • 2021-06-26
  • 2021-06-05
  • 2022-12-23
  • 2021-05-29
  • 2022-02-06
  • 2021-08-12
  • 2021-09-27
  • 2021-10-11
猜你喜欢
  • 2021-06-02
  • 2022-12-23
  • 2022-12-23
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-09-25
相关资源
相似解决方案