您的位置:首页 > 运维架构 > Shell

Shell入门(四)之Shell 流程控制

2018-01-17 17:25 459 查看

Shell入门(四)之Shell 流程控制

if else

if语句

语法:

if condition
then
command
...
fi


eg:

#!/bin/bash

a=100
b=100

if [ $a == $b ]
then
echo "$a == $b"
fi


输出:

100 == 100


也可以在终端写成一行:

[zhang@localhost ~]$ a=100
[zhang@localhost ~]$ b=100
[zhang@localhost ~]$ if [ $a == $b ]; then    echo "$a == $b"; fi
100 == 100


if else语句

语法:

if condition
then
command
...
else
command
...
fi


eg:

在终端输入

[zhang@localhost ~]$ a=100
[zhang@localhost ~]$ b=200
[zhang@localhost ~]$ if [ $a == $b ]
> then
>     echo "$a == $b"
> else
>     echo "$a != $b"
> fi
100 != 200


if elif else语句

语法:

if condition1
then
command1
...
elif comdition2
then
command2
else
command
fi


eg:

#!/bin/bash

a=100
b=200
c=150

if [ $[a + c] > $b ]
then
echo "$a + $c > $b  return true"
elif [ $[a + c] < $b ]
then
echo "$a + $c < $b  return true"
else
echo "$a + $c = $b  return true"
fi


输出结果:

100 + 150 > 200  return true


for循环

for语法:

for var in item1 item2 ... itemn
do
command1
command2
...
commandn
done


写成一行:

for var in item1 item2 ... itemn; do command1;command2 ... done;


eg:

[zhang@localhost ~]$ for num in 1 2 4 8 16
> do
>     echo $num
> done
1
2
4
8
16


一行执行:

[zhang@localhost ~]$ for num in 1 2 3 4 5; do echo $num; done
1
2
3
4
5


While语句

while语法:

while condition
do
command
done


eg:

#!/bin/bash

num=1

while(($num<=5))
do
echo $num
let "num++"
done


输出结果:

1
2
3
4
5


无限循环

while :
do
command
done


或者

while true
do
command
done


或者

for (( ; ; ))


until循环

until语法:

until condiion
do
command
done


一般使用while替代

case

case语法:

case value in
value1)
command1
command2
...
commandn
;;
value2)
command1
command2
...
commandn
;;
value3)
command1
command2
...
commandn
;;
*)
command1
command2
...
commandn
;;
esac


;;
:其间所有command执行到
;;
结束。相当于
break


*
:相当于java中的
default


eg:

#!/bin/bash

value=2

case $value in
1)
echo "$value equal 1"
;;
2)
echo "$value equal 2"
;;
3)
echo "$value equal 3"
;;
*)
echo "$value not find"
;;
esac


输出结果:

2 equal 2


跳出循环

break命令

#!/bin/bash

for i in 1 2 3 4 5
do
if [ $[i % 2] == 0 ]
then
echo "$i"
break
fi
done


输出:2

continue命令

#!/bin/bash

for i in 1 2 3 4 5
do
if [ $[i % 2] == 0 ]
then
echo "$i"
continue
fi
done


输出:

2
4


esac命令

与case协同使用,作为case的结束符号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: