shell中常用的控制语句有如下几种:
1、if语句相关的几种结构
if [ condition ]; then
#statements
fi
if [ condition ]; then
#statements1
else
#statements2
fi
if [ condition ]; then
#statements1
elif [ condition ]; then
#statements2
else
#statements3
fi
例:
#!/bin/bash
declare -i a=0 #注意此处bash解析器可以使用declare
if [ a=0 ]; then
echo "a is zero"
else
echo "a isn't zero"
fi
2、case语句结构
case word in
pattern1)
#statements1
;;
pattern2)
#statements2
;;
*)
#statements3
;;
esac
例:
#!/bin/bash
case 1 in
0)
echo "in 0 case"
;;
1)
echo "in 1 case"
;;
*)
echo "in default case"
;;
esac
3、while语句结构
while [ condition ]; do
#statements
done
例:
#!/bin/bash
while [ 1 ]; do
echo "hello"
done
4、until语句结构
until [ condition ]; do
#statements
done
例:
#!/bin/bash
i=0
sum=0
until [ $i -eq 101 ]; do
let "sum=sum+i"
let "i=i+1"
done
echo "sum = $sum"
5、for语句常用结构
for (( i = 0; i < count; i++ )); do
#statements
done
例:
#!/bin/bash
i=0
sum=0
for ((i=1; i<101; i++)); do
let "sum += i"
done
echo "sum = $sum"
for var in dat1 dat2 dat3 ...; do
#statements
done
例:
#!/bin/bash
i=0
for i in 1 2 3; do
echo "i = $i"
done
6、select语句结构(建立菜单的一种工具, 这种结构是从ksh中引入的.)
select var in dat1 dat2 dat3 ...; do
#statements
break
done
例:
#!/bin/bash
var=0
select var in 1 2 3; do
if [ var -eq 2 ]; then
echo "var = $var the answer is right"
else
echo "error!"
break;
done
7、其他语句
break 退出循环
continue 结束本次循环,开始新一轮循环