1.什么是shell script?
script就是脚本的意思,shell script就是利用shell的功能所写的一个“程序”,这个程序是使用纯文本文件,将一些shell的语法和命令写在里面,搭配正则表达式,管道命令,数据流重定向等功能,以达到我们所想要的处理目的。就像早期Dos年代的批处理文件一样,最简单的功能就是将许多命令写在一起,让用户很轻易就能够一下子处理复杂的操作。
2.为什么要学shell script
- 自动化管理的重要依据
- 追踪与管理系统的重要工作
- 简单入侵检测功能
- 连续命令单一化
- 简易的数据处理
- 跨平台支持与学习历程短
3.回到主题条件判断式
只要我们讲到程序,那么就会想到条件判断。
if…then
最常见的条件判断式
- 单层简单的
if [条件判读式]; then
当条件判断式成立时,可以进行的命令工作内容;
fi <==将if反过来写,结束if之意。
括号和括号之间用&&(和)和||(或)来隔开
- 多重复杂的
if [条件判读式]; then
当条件判断式成立时,可以进行的命令工作内容;
else
当条件判断式不成立时,可以进行的命令工作内容;
fi
- 更复杂的情况
if [条件判读式1]; then
当条件判断式成立时,可以进行的命令工作内容;
elif [条件判断式2]; then
当条件判断式成立时,可以进行的命令工作内容;
else
当条件判断式不成立时,可以进行的命令工作内容;
fi
case…esac
case $变量名称 in <==关键字为case,还有变量前要有$
"第一个变量内容") <==每个变量的内容建议用双引号括起来,关键字则为小括号)
程序段
;; <==每个类型结尾使用两个连续的分号来处理;
"第二个变量内容")
程序段
;;
*) <==最后一个变量内容都会用*来代表所有其他值
不包含第一个变量内容与第二个变量内容的其他的程序执行段
exit 1
;;
esac <== 最终的case结尾!”反过来写“
注意:
一般来说,使用”case $变量 in”时,$变量有大概有两种取得方式:
- 直接执行式:直接赋值
- 交互式:通过read这个命令来让用户输入变量的内容
function功能
函数可以在shell script 当中做出一个类似自定义执行命令的东西,最大的功能是,可以简化我们很多的程序代码。shell script 的执行方式由上而下,从左至右,因此在shell script 的设置一定要写在程序的最前面,这样才能在执行的时候找到可用的程序段。
function fname(){
程序段
}
function是拥有内置变量的,他的内置变量与shell script很类似,函数名称代表$0,而后续接的变量也是$1,$2…来替代。