条件判断
shell命令脚本用于执行shell命令,将需要执行的shell命令写在脚本内直接运行能省很多事;而条件判断的作用与C语言类似。
if then fi
基本格式:
if [ 条件 ]; then
//条件成立要执行的内容
fi
说明:
1.if后面要有空格。
2.[ ]里面的“条件”前后都要有空格。
3.fi用于结束。
如图:
1.read从shell获取输入存到value。
2.若输入“Y”,则输出Y。
3.若输入“N”,则输出N。
4.其他输入不做反应。
if then else fi
就是在原有的 “if then fi” 中多加了个else
if then elif fi
相当于C语言的if elseif else,但elseif的书写格式为elif。
case
类似与C语言的switch case,但shell脚本没有switch。
格式:
#!/bin/bash
case $1 in
"a")
echo "input a"
;;
"b")
echo "input b"
;;
*)
echo "others"
;;
esac
说明:
1.$1 为在运行 .sh文件时后面加入的值。
2. “ ”) 等价于C语言的 case :。
3. 结束用两个分号 ;;。
4. 通配符 * 不用加双引号。
5. 以case开头,以esac结尾。
函数
C语言中使用函数封装代码,shell脚本也有函数,但写法略有不同。
//定义
function help()
{
//代码
}
//调用
help
函数传参
3-7:定义函数
9:调用函数
这里传参无需像C语言一样用括号去括起来并且参数间用逗号隔开,只需直接在后面写即可,函数中接收参数的格式与在shell命令中执行脚本时后面带参的方式类似。
循环
while循环
while[ 条件 ]//判断条件是否成立
do//循环开始
//demo
done//循环结束
只有当输入值不满足时才会退出。
until循环
另外一种相似的是until,当条件不满足时循环,满足后结束循环。
for循环
第一种for:无需考虑次数,将你在in后面的数据遍历完后就停止。
for var in con1 con2 con3
do
//demo
while
第二种for:与C语言十分相似。
注意:这里的for需要使用2个()。
第八行对数值进行运算需要加$符号。
最后发现得加2个(),并且外围也要加一个$。