一、条件判断式
1、利用 if…then
简单地说,当符合某个条件判断的时候,就予以进行某项任务。
①、单层、简单条件判断式
if [条件判断式]; then
条件成立时执行的命令
fi
如果有多个条件要判别时,除了【将多个条件写入一个中括号内的情况】
[ "${yn}" == "Y" -o "${yn}" == "y" ]
之外,还可以有【多个中括号来隔开】
[ "${yn}" == "Y" ] || [ "${yn}" == "y" ]
案例一:输入Y/N,程序判断并输出信息
脚本代码如下:
显示效果如下:
②、多重、复杂条件判断式
#一个条件判断,分成功执行与失败执行
if [ 条件判断式 ] ; then
成功时执行的语句
else
失败时执行的语句
fi
#多个条件判断
if [ 条件判断式一 ] ; then
当条件一成立时,执行的语句
elif [ 条件判断式二 ] ; then
当条件而成立时,执行的语句
else
条件一、二都不成立时,执行的语句
fi
2、利用case…esac判断
case $变量名称 in
"第一个变量内容")
程序段
;;
"第一个变量内容")
程序段
;;
*)
不包含第一个变量与第一个变量的其他程序段
exit 1
;;
esac
3、利用function功能
function fname() {
程序段
}
注意:由于程序是右上至下至下的,所以function必须要设置在最前面。function也拥有内置变量,函数名表示$0,而后续变量也是以$1、$2…来代替
案例二:对function的使用
脚本代码如下:
实现效果如下:
二、循环
1、不定循环
①、while do done(当条件成立时,就进行循环,知道条件不成立才停止)
while [ condition ] #中括号中的的状态就是判断式
do
程序段
done
案例三:循环的使用
脚本代码如下:
显示效果如下:
②、until do done(程序满足情况就执行)
until [ condition ]
do
程序段
done
2、for do done(固定循环)
#var是变量内容
#cond1是第一次循环时变量var的内容
#cond2是第二次循环时变量var的内容
for var in cond1 cond2 cond3 …
do
程序段
done
案例四:for循环的使用
脚本代码如下:
显示效果如下:
3、for do fone 的数值处理
#初始值:某个变量自循环汇总的起始值
#限制值:当变量的值在这个限制值的范围内,就继续进行魂环,例如 i <= 100
#赋值运算:每做一次循环时,变量也变化,例如i=i+1
for (( 初始值; 限制值; 赋值运算 ))
do
程序段
done
案例五:计算1-10的总和
显示效果如下:
三、shell脚本的跟踪和调试
语法:sh [-nvx] 脚本名
“ -n ”表示不要执行脚本,仅查询语法的问题
“ -v ”表示在执行脚本之前,先将内容输出到屏幕上
“ -x ”表示将使用到的脚本内容输出到屏幕上(重点)
例如:显示for循环的步骤