shell脚本入门2
shell脚本条件判断、函数和循环
一、shell脚本条件判断
shell脚本支持条件判断
虽然可以通过&&和||实现简单的条件判断
但稍微复杂一点的场景就不适合了
shell脚本提供了3中条件判断的写法
1.1、if then语句
伪代码
if [ 条件判断 ];then
todo #条件判断成立要做的事情
fi
#!/bin/bash
read -p "input y or n:" value
if [ $value == "y" ] || [ $value == "Y" ]; then
echo "input param is:" $value
fi
if [ $value == "n" ] || [ $value == "N" ]; then
echo "input param is:" $value
fi
1.2、if then else语句
伪代码
if [ 条件判断 ];then
todo #条件判断成立要做的事情
else
todo #条件判断成立要做的事情
fi
伪代码
if [ 条件判断 ];then
todo #条件判断成立要做的事情
elif [ 条件判断 ];then
todo #条件判断成立要做的事情
else
todo #条件判断成立要做的事情
fi
#!/bin/bash
read -p "input y or n:" value
if [ $value == "y" ] || [ $value == "Y" ]; then
echo "input param is:" $value
echo "is programming"
elif [ $value == "n" ] || [ $value == "N" ]; then
echo "input param is:" $value
echo "not program"
else
echo "input param is:" $value
echo "input error"
fi
1.3、case语句
伪代码
case $变量 in
"第1个变量内容")
todo
;; //两个分号表示该程序块结束
"第2个变量内容")
todo
;;
*) #通配符
todo
;;
esac
#!/bin/bash
case $1 in
"a")
echo "input param is:" $1
;;
"b")
echo "input param is:" $1
;;
*)
echo "input error:" $1
;;
esac
二、shell脚本函数
shell脚本也支持函数,函数的写法如下:
伪代码
function funcname()
{
todo //函数体
}
2.1 函数不传参
#!/bin/bash
function help()
{
echo "this is help function"
}
function close()
{
echo "this is close function"
}
case $1 in
"-h")
help
;;
"-c")
close
;;
*)
echo "input error"
;;
esac
2.2函数传参
#!/bin/bash
function print()
{
echo "first input param is:" $1
echo "second input param is:" $2
}
print a b
三、shell循环
shell脚本也支持循环
3.1、while do done,表示当条件成立的时候就一直循环,知道条件不成立
伪代码
while [条件] //括号内的状态是判断式
do
todo //循环代码段
done
#!/bin/bash
while [ "$value" != "close" ]
do
read -p "input param:" value
done
echo "while end"
3.2、另外一种until do done,表示条件不成立的时候循环,条件成立以后就不循环了
伪代码
until [条件]
do
todo //循环代码段
done
#!/bin/bash
until [ "$value" == "close" ]
do
read -p "input param:" value
done
echo "while end"
3.3、for循环,使用for循环可以知道有循环次数
伪代码
for var in con1 con2 con3 ...
do
todo //循环代码段
done
#!/bin/bash
for var in aaa bbb ccc
do
echo "the value is $var"
done
3.4、for循环数值处理
伪代码
for((初始值;限制值;执行步长))
do
todo //循环代码段
done
#!/bin/bash
read -p "input count:" count
for((i=0; i<=count; i++))
do
total=$(($total + $i))
done
echo "from 1 add to $count is $total"
四、参考资料
该笔记大部分内容来自学习正点原子视频课程shell脚本条件判断、函数和循环