Shell流程控制

发布时间 2023-04-07 15:20:42作者: 小路不懂2


和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仅仅跳出当前循环。