shell编程04【流程控制语句】
【摘要】
流程控制语句
一、if语句
1.语法
if condition1
then
command1
elif condition2
then
command2
else
com...
流程控制语句
一、if语句
1.语法
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
写成一行(适用于终端命令提示符):
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
- 1
2.举例
#!/bin/bash
a=10
b=20
if [ $a -eq $b ]
then
echo "a 等于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo " a 大于 b"
fi
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
输出
[root@hadoop-node01 ~]# . s8.sh
a 小于 b
- 1
- 2
注意
[ condition ] (注意condition前后要有空格)
二、case语句
Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
举例
#!/bin/bash
case $1 in
start)
echo "开始执行了..."
;;
stop)
echo "执行完成...."
;;
*)
echo "其他操作"
esac
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
输出:
[root@hadoop-node01 ~]# vim s9.sh
[root@hadoop-node01 ~]# . s9.sh
其他操作
[root@hadoop-node01 ~]# . s9.sh start
开始执行了...
[root@hadoop-node01 ~]# . s9.sh stop
执行完成....
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;
三、循环语句
1.for循环
for循环一般格式为
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
- 1
- 2
- 3
- 4
- 5
- 6
- 7
写成一行
for var in item1 item2 ... itemN; do command1; command2… done;
- 1
举例
#!/bin/bash
for i in 1,2,3,4
do
echo $i
done
echo "------1------"
for i in {1..5}
do
echo $i
done
echo "------2----"
for a in {1..5} ; do echo $a; done;
echo "-----3------"
for((i=0;i<10;i++))
do
echo $i
done
echo "-----4-----"
for((i=0;i<5;i++)); do echo $i ;done;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
输出:
[root@hadoop-node01 ~]# . s10.sh
1,2,3,4
------1------
1
2
3
4
5
------2----
1
2
3
4
5
-----3------
0
1
2
3
4
5
6
7
8
9
-----4-----
0
1
2
3
4
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
break和continue关键字
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then
break;
fi
echo $i
done
echo "-------------"
for i in {1..10}
do
if [ $i -eq 5 ]
then
continue
fi
echo $i
done
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
输出
[root@hadoop-node01 ~]# . s11.sh
1
2
3
4
-------------
1
2
3
4
6
7
8
9
10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
2.where循环
while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。
while condition
do
command
done
- 1
- 2
- 3
- 4
举例
#!/bin/bash
i=1
while(( $i<=5))
do
echo $i
let i++
done
- 1
- 2
- 3
- 4
- 5
- 6
- 7
使用中使用了 Bash let 命令,它用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量
无限循环
while :
do
command
done
- 1
- 2
- 3
- 4
三、read语句
语法
read -p(提示语句)-n(字符个数) -t(等待时间 单位秒)
- 1
案例
[root@hadoop-node01 ~]# read -p 请输入密码: -n 10 -t 10 password
请输入密码:123456
[root@hadoop-node01 ~]# echo $password
123456
- 1
- 2
- 3
- 4
文章来源: dpb-bobokaoya-sm.blog.csdn.net,作者:波波烤鸭,版权归原作者所有,如需转载,请联系作者。
原文链接:dpb-bobokaoya-sm.blog.csdn.net/article/details/88924399
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)