Shell流程控制
和java,php等语言不一样,sh的流程控制不可为空。
1. if
if
then
fi
-------------
实例:
if [ $(ps -ef |grep -c "ssh") -gt 1]; then
echo true
fi
-------------
if
then
else
fi
if
then
elif
then
else
fi
if else 的[]判断语句中大于使用-gt,如果使用(())作为判断语句,大于使用>
2. for
for var in item1 item2...itemn
do
cmd
done
3. while
while condition
do
cmd
done
4. until循环
until循环执行一系列命令直至条件为true时停止。
until condition
do
cmd
done
5. case...esac
case...esac为多选择语句,每个case分支用右圆括号开始,用连个分号;;表示break,即执行结束,跳出整个case...esac语句,esac(就是 case 反过来)作为结束标记。
-------------------
echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
1) echo '你选择了 1'
;;
2) echo '你选择了 2'
;;
3) echo '你选择了 3'
;;
4) echo '你选择了 4'
;;
*) echo '你没有输入 1 到 4 之间的数字'
;;
esac
-------------------
#!/bin/sh
site="baidu"
case "$site" in
"baidu") echo "百度"
;;
"google") echo "Google 搜索"
;;
"taobao") echo "淘宝网"
;;
esac
6. break和continue
break命令允许跳出所有循环,终止执行后面的所有循环。
continue仅仅跳出当前循环。