一. 实验目的
掌握shell的基本数据类型及基本语法;
掌握shell基本运算符号及的控制语句;
能够自主进行shell脚本的编写。
二. 实验内容
自己编写一个shell脚本,在/home/shiyanlou/Code目录新建mkdirps.sh实现将当前进程情况写入一个pstxt.txt的记事本。
在Code目录下建立isfd.sh脚本,判断参数字符串是目录、文件亦或是不存在。
写一个猜数字的shell脚本游戏脚本名称mygame.sh,利用RANDOM产生一个随机数,请用户猜测,如果不对,提示用户太大或太小,直到猜中为止。
编写一个脚本huaquan.sh实现“剪刀、石头、布”划拳游戏,实现人和电脑对抗。
三. 实验步骤
自己编写一个shell脚本,在/home/shiyanlou/Code目录新建mkdirps.sh实现将当前进程情况写入一个pstxt.txt的记事本。
通过cd指令进入Code目录;输入vi mkdirps.sh进入vi编辑界面;
按i键进入编辑模式打出头文件#!/bin/bash;要写入一个.txt文件,用到touch指令建立pstxt.txt记事本;:wq保存并退出vi模式。
下一步需要通过chmod指令对新建的mkdirps.sh文件进行授权。
./mkdirps.sh运行文件,运行后输入ls指令观察运行后的结果,是否写入了pstxt.txt记事本。

在Code目录下建立isfd.sh脚本,判断参数字符串是目录、文件亦或是不存在。
- 在Code目录下输入vi idfd.sh建立idfd.sh脚本并进入vi模式,输入头文件#!/bin/bash,
- 利用-f、-d指令分别判断普通文件和目录,编写如下图所示的代码。
- :wq保存并退出,
- chmod u+x isfd.sh授权isfd.sh脚本,./isfd.sh运行该脚本,运行结果如下图二
 
写一个猜数字的shell脚本游戏脚本名称mygame.sh,利用RANDOM产生一个随机数,请用户猜测,如果不对,提示用户太大或太小,直到猜中为止。
在Code目录下输入vi mygame.sh新建脚本并进入脚本的vi模式。
通过代码rd=((RANDOM%10))生成0~10的随机数,为了方便起见,直接通过echo $rd输出生成的随机数。
让user输入猜测的数字,然后用if函数判断user猜测的数和生成的随机数谁大谁小,如果大了,则echo猜大了,再猜一次;如果小了则echo猜小了,再猜一次;如果猜对了,则不需要再猜了,直接echo恭喜你猜对了,其中-lt是测试猜的数是否小于随机数,-gt是判断猜测数是否大于随机数。编写的代码如下图一。
在指令模式下输入:wq保存并退出vi模式。
通过chmod指令对mygame.sh授权。
./mygame.sh运行脚本,运行结果如下图二


编写一个脚本huaquan.sh实现“剪刀、石头、布”划拳游戏,实现人和电脑对抗。
在Code目录下输入vi huaquan.sh新建脚本并进入vi模式。
把剪刀定义给"1",把石头定义给“2”,把布定义给“3”,然后利用RANDOM从13中抽取随机数,让user输入13之中的一个数代表石头剪刀布。
有序列表建立if判断代码,去判断是user赢了还是电脑赢了,或者平局,(这里注意if后面的判断代码要用[[判断语句]],或者在变量两边加双引号,定义一元表达式),判别后用echo输出指令显示哪一方赢了或者平局。
用while循环可进行多次猜拳游戏。
使用chmod指令授权huaquan.sh脚本
./huaquan.sh运行脚本,结果如下图三,不想玩了可以按ctrl+c键结束游戏。

四. 实验总结
请对本次实验的过程进行思考和总结,并就相关问题和知识点进行说明及归纳。
- 总结1:经过本次实验,已经熟练掌握的vi模式的基本指令,以及对创建脚本、授权脚本、运行脚本、对脚本代码编写错误的纠正的熟练运用。还有vi模式下的一些函数、命令的熟悉,例如:if判断函数、echo输出指令、while循环、-lt和-gt判别大小指令、等等
- 总结2,在刚接触vi模式的时候还是遇到许多问题的,比如:不知道如何退出vi模式,后来通过询问老师解决了该问题,比如:运行脚本时提示出错,但是不知道该如何去改,最后通过上网查找,解决了该问题

|