if then else fi
唯一要注意的是 else 不能出现空语句,如果存在这种情况,优化为:if then fi
for 循环
# 一般格式
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
# 写成一行
for var in item1 item2 ... itemN; do command1; command2 ... done;
for loop in 1 2 3 4 5
do
echo "current loop value is : ${loop}"
done
for str in This is a string
do
echo $str
done
while 循环
# 如果int小于5,打印数值并加1
int=1
while(( $int<=5 ))
do
echo $int
let "int++" # let 命令,用于执行一或多个表达式,变量计算中不需要加上$
done
# 从键盘读取信息,按<Ctrl-D>可退出循环
echo -n '输入你最喜欢的网站名(<Ctrl-D>可退出):'
read SITE
do
echo "是的!$SITE 是一个好网站"
echo -n '输入你最喜欢的网站名(<Ctrl-D>可退出):'
done
echo "\n"
until 循环
until condition
do
command
done
# until循环,如果条件返回false,则继续执行,直到条件为true时停止跳出循环。刚好跟while相反
echo 'until loop demo:'
n=0
until [ $n -gt 10 ]
do
echo $n
n=`expr $n + 1`
done
case … esac
case 值 in
模式1)
command
...
;;
模式2)
command
...
;;
esac
echo '输入 1 到 4 之间的数字:'
read n
case $n in
1) echo '你选择了 1'; ;;
2) echo 'you input 2'; ;;
3) echo 'you input 3'; ;;
4) echo 'you input 4'; ;;
*) echo 'you input out of 1~4'; ;;
esac
site="runoob"
case "$site" in
"runoob") echo "runoob.com"
;;
"google": echo "google.com"
;;
"taobao": echo 'taobao.com'
;;
esac
break 和 continue
跟其他语言完全一样