一、实验目的
1. 了解和熟悉创建并使用脚本的步骤;
2. 熟悉bash的控制结构;
3. 掌握shell编程的基本方法;
4. 掌握Shell脚本的变量和参数;
5. 掌握Shell脚本的分支和循环控制流程。
二、实验内容
1. 编写一个最简单的shell脚本并运行;
2. 编写一个能读入位置参数、实现任一四则运算功能的shell脚本(函数)并运行;
3. 编程:从键盘输入数字计算累加和,如果是负数则将其转换成正数后累加,一直到输入“end”结束。
三、实验器材(设备、元器件)
(一)装有VMware软件的计算机一台(虚拟机软件)
(二)系统镜像文件
四、实验步骤
1、编写步骤
1)创建一个简单的列目录和日期的shell脚本并运行;
2)编辑脚本内容 输入下列指令 vi xxx.sh,创建一个新文件;
3)按回车键将光标移到一个新行,再按esc键,再用shift加:wq保存退出即可;
4) 输入指令显示文件权限,将脚本文件修改成可执行 chmod 777 xxx.sh;
5) 执行脚本文件,输入脚本文件名字 ./xxx.sh或 bash xxx.sh。
2、shell脚本编写
shell 脚本的编写语法如下:
1)程序往往以#!/bin/bash 的行开始,这一行不是注释而是 shell 脚本的标识;
2)以#作为语句的注释;
3)shell 变量,命令,关键字语法等。
2.1 shell变量
1)shell 变量中允许建立变量存储数据,但是不支持数据类型,所有赋值给变量的值都解释为一串字符;
2)变量的定义格式:
变量名称=值。 #变量赋值时,等号两边不能有空格;
变量的调用:取shell变量的值,$变量名;
2.2 标准变量或环境变量
1)自定义变量:由用户自己定义、修改和使用;
2)环境变量:由系统维护,用于设置工作环境;
3)位置变量:通过命令行给脚本程序传递参数;
4)预定义变量:Bash中内置的一类变量,不能直接修改;
5)常见环境变量如下:
a. HOME :用户主目录 PATH 文件搜索路径;
b. PWD :用户当前工作目录;
c. PS1、PS2 :默认提示符($)及换行提示符(>);
d. LOGNAME:指登录主机的用户名称;
e. HOSTNAME :主机名字,也就是这个系统的名字;
f. USER:指当前用户名字。
3、执行shell脚本
要创建一个shell脚本,我们可以使用任何编译器,比如vim在文本文件中编写它,习惯保存的文件后缀为.sh(仅为了识别是shell脚本文件);
4.Shell程序和语句
一个shell程序由零或多条shell语句构成,shell语句包括3类:说明性语句、功能性语句和结构性语句;
4.1说明性语句
说明性语句即注释行,注释行可以出现在程序中的任何位置,即可以单独占一行,也可以接在执行语句后面。以#号开始到所在行的行尾部分的语句是指说明性语句都不被解释执行;
实验一:编写一个最简单的shell脚本并运行;
编写步骤如下:
1)编辑脚本内容 vi hf1.sh,编写完成后再按esc键,再用shift加:wq保存退出即可;
2)将脚本文件修改成可执行 chmod 777 hf1.sh;
3)执行脚本文件 ./hf.sh 执行结果如下:
4.2功能性语句
1)键盘读入变量值
在shell程序中,变量的值可以作为字符串从键盘读入,其格式为:read变量;
2)算数运算符
算数运算符expr 主要是用于简单的整数计算,包括 加(+)减(-)乘(\*)除(/)取余(%)等操作;
格式:expr 变量1 运算符 变量2 [运算符 变量3];
3)数值运算法
a. 用expr改变运算顺序。可以用echo `expr 1 +2`来输出1+2的结果,用expr表示后面的表达式为一个数学运算。需要注意的是,`并不是一个单引号,而是“Tab”键上面的那个符号;
b. 用let指示数学运算。可以先将运算的结果赋值给变量b,运算命令是b=let 1 + 2。然后用echo$b来输出b的值。如果没有let,则会输出1+2;
c. 用$[]表示数学运算。将一个数学运算写到$[]符号的中括号中,中括号中的内容将先进行数学运算。例如命令echo$[1+2],将输出结果3;
实验二:编写一个能读入位置参数、实现任一四则运算功能的shell脚本(函数)并运行;
1)方法一
2)方法二
4.3结构性语句
1)while循环格式
while((循环条件))
do 循环体
done
只要表达式为真,do和done之间的操作就一直会进行。
2)获取输入
read: 在shell表示 从键盘上获取输入
read str -->从键盘上获取输入的数据,存储到变量str
read -p "input data:" val1 val2 val3 -->从键盘上获取三个整数,并且分别保存到变量val1 val2 val3中
实验三:从键盘输入数字计算累加和,如果是负数则将其转换成正数后累加,一直到输入“end”结束;
五、实验数据及结果分析
1.实验一:编写一个最简单的shell脚本并运行
2. 实验二:编写一个能读入位置参数、实现任一四则运算功能的shell脚本(函数)并运行;
3. 实验三:从键盘输入数字计算累加和,如果是负数则将其转换成正数后累加,一直到输入“end”结束。