Shell 脚本 和语句

shell脚本与其他编程语言所编写的程序不同,脚本运行时需要调用相应的解释器来翻译脚本中的内容,根据我们编写的脚本格式不同,需要的解释器也不同。

一、脚本格式范例
每一个完善的脚本都要遵循一些既定的规则,下面来看一个完整的脚本:
Shell 脚本 和语句_第1张图片
在上述例子里,我们给出了一个相对完善的脚本所应该具有的基本框架。
第一行#!的作用时指定该脚本程序的命令解释器,例子中时/bin/bash。也就是说,脚本执行后,系统内核读取#!后面的路径查找解释器,最终使用该解释器翻译脚本代码并运行。
#后面为注释,在脚本执行时,该部分会被忽略。
接下来就是脚本的代码部分,这些代码会按顺序依次执行,但通过控制语句控制执行顺序除外。

二、运行脚本的方式
脚本编写完成后,我们需要运行并实现脚本程序的功能,下面时运行脚本的方法:
1.赋予权限,直接运行脚本
在这里插入图片描述
2.没有权限,通过bash或sh运行脚本
在这里插入图片描述

三、判断语句应用

1.if 语句

语法格式1 语法格式2 语法格式3
if 条件 if 条件 if 条件
then then then
命令序列 命令序列 命令序列
fi else elif 条件
命令序列 then
fi 命令序列
else
命令序列
fi

命令序列代表命令集合,可以是一条命令,也可以是多条命令。
也就是说,当判断条件满足时,可以仅执行一条命令,也可以执行一系列命令,格式中对条件的判断可以使用test命令,也可以用[ ] 测试。

if 语句实例:
实例1.判断当前用户是否为root管理员,如果是,则执行tar对/etc/目录执行备份。
Shell 脚本 和语句_第2张图片
/dev/null 黑洞文件,这里指不显示输出结果。

实例2.要求用户输入密码,判断密码是否正确。
Shell 脚本 和语句_第3张图片
read 读取标准输入的输入
read -p 指定一个提示

实例3.要求用户输入密码,判断密码是否正确,若正确,显示OK;若不正确,显示ERROR
Shell 脚本 和语句_第4张图片
实例4.读取参数判断成绩,成绩小于60分显示Fail;成绩大于或等于60分但小于70分,则显示Pass;成绩大于或等于70分但小于80分,则显示Fine;成绩在80分以上显示Excellent。
Shell 脚本 和语句_第5张图片
2.case 语句

shell脚本里,除了使用 if 语句进行判断,还可以使用 case 语句进行判断,它是多重 if 判断语句的替换解决方案,它易读、易写,*)下的命令为case默认动作,当变量与所有的模式都没有匹配时,case 将执行 *)下的命令序列。最后以esac结尾下面是 case 语句的格式.

语法格式1 语法格式2
case $变量名称 in case $变量名称 in
模式 1) 模式1 |模式2)
命令序列 命令序列
;; ;;
模式 2) 模式3|模式4)
命令序列 命令序列
;; ;;
模式 N) 模式5|模式6)
命令序列 命令序列
;; ;;
*) *)
esac esac

case 语句实例:
实例1.根据时间备份/var/log 日志目录,仅备份周三、周五的数据。
Shell 脚本 和语句_第6张图片实例2.根据用户输入的参数不同返回不同的提示字符,如果用户输入字符,则提示You have type a character;如果用户输入数字,则提示You have type a number,否则提示ERROR

Shell 脚本 和语句_第7张图片

实例3. 编写firefox火狐浏览器启动脚本,支持start、stop、restart功能。
Shell 脚本 和语句_第8张图片
四、循环语句应用
1.for 语句

日常系统管理工作中有大量需要重复运行的指令,Shell编程提供了 for、while、until、select循环语句以实现特定指令的反复执行功能,在所有的循环语句中,变量必须要有初始值,每次运行命令序列前都需要对条件进行过滤,满足条件才会运行命令,否则不执行相关操作。
下面表格为 for 语句的语法格式:

语法格式1 语法格式2
for 变量 in 值1 值2 值N for (( 初始化变量值;结束循环条件;运算))
do do
命令序列 命令序列
done done

for 语句实例:
实例1.给多个用户群发邮件,邮件内容为/var/log/messges 文件中的内容,标题为Log
Shell 脚本 和语句_第9张图片
实例2.多次给NUM变量赋值,并显示变量NUM 的值
Shell 脚本 和语句_第10张图片
实例3.通过for 语句打印9*9的乘法表
Shell 脚本 和语句_第11张图片

2.while 语句
while 语句在循环前对运行条件进行判断,运行条件满足时,循环将一直被执行,直到测试条件失败时循环结束。while 语句可以通过read命令每次读取一行文件内容,文件内容有多少行,while循环就执行多少次,读取文件结束时,循环结束。
下面是while 语句的语法格式

语法格式1 语法格式2
while [条件] while read -r line
do do
命令序列 命令序列
done done < file

while 语句实例:
实例1.批量添加20个用户,用户名称为userN,N为1至20的数字
Shell 脚本 和语句_第12张图片
实例2.打印网卡配置文件的每一行
Shell 脚本 和语句_第13张图片
3.until 语句
until 语句与while 语句相反
until 语句只用在条件为假的情况下才会持续的运行
until 语句与 while 语句的区别
1.until 循环执行直到返回状态0
2.while循环执行直到返回非0状态
3.until 循环总是执行至少一次

shell 函数应用
https://blog.csdn.net/taranfly/article/details/80253416

你可能感兴趣的:(Shell 脚本 和语句)