版权声明:版权声明中 https://blog.csdn.net/lds_include/article/details/88912711
Linux的shell编程(四)-条件控制
a、if条件控制
写成一行就得这么写:
if [ ] ; then echo "" ;fi
单一的if:(表达式必须有空格)
if []
then
cmd1
fi
单一的if else :(表达式必须有空格,else后不能有then)
if []
then
cmd1
else
cmd2
fi
if else-if else :(elif后必须有then)
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
案例:
a=10
b=20
if [ $a == $b ]
then
echo 'a == b'
elif [ $a -gt $b ]
then
echo 'a > b'
elif [ $a -lt $b ]
then
echo 'a < b'
else
echo '没有符合条件'
fi
b、循环条件:for 、 while 、 until
1、for
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
- 案例1:
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
- 案例2:(循环创建文件)
for i in `seq 1 3 ` ; do touch $i.log ; done
2、while循环:
while condition
do
command
done
- 案例:(注意表达式一定要用双括号)
i=1
while (( $i < 5))
do
echo $i
#i=`expr $i + 1 `
#如下是let命令
let "i++"
done
3、case匹配:
(必须有in,一个模式结束必须用双;;号,esac整个case(case的反转)结束标识)
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
同时也支持continue(跳出当前)和break(跳出所有循环)跳出循环。
- 案例:
while :
do
echo -n "输入 1 到 5 之间的数字: "
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的!"
#continue
break
echo "游戏结束"
;;
esac
done