shell的流程控制语句

shell的流程控制语句:

  • 选择

  • 判断

  • 循环

shell的条件选择语句:if

if分为单分支、双分支和多分支

单分支格式:
if 判断条件;then
   执行的操作
fi

例如:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
NUM=1

if test $NUM -eq 1 ; then 
	echo NUM == 1
fi

[root@CentOS7 ~]# bash 1.sh 
NUM == 1

双分支:
[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
NUM=2

if test $NUM -eq 1 ; then 
	echo NUM == 1

else
	echo NUM != 1

fi

[root@CentOS7 ~]# bash 1.sh 
NUM != 1
多分支语句:
[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
NUM=2

if test $NUM -eq 1 ; then 
	echo NUM == 1

elif test $NUM -eq 2; then
	echo NUM == 2
else
	echo NUM !=1

fi

[root@CentOS7 ~]# bash 1.sh 
NUM == 2

条件判断语句:

case格式:
case 变量引用 in 
PAT1)
	执行相关操作
	;;
PAT2)
	执行相关操作
	;;
*)
	执行相关操作
	;;
esac

#case语句支持通配符
* 任意长度任意字符
? 任意单个字符
[] 指定范围内的任意单个字符
| 或者,如: a|b

例如:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash

NUM=4

case  $NUM in

1)
	echo NUM == 1
	;;
2)
	echo NUM == 2
	;;
3)
	echo NUM == 3
	;;
4)
	echo NUM == 4
	;;
*)
	echo xxxxx
	;;
esac

[root@CentOS7 ~]# bash 1.sh 
NUM == 4

shell循环语句:

for

格式:

for 变量 in 列表
do
	要做的操作
done
列表:
  • 直接给出列表:1 2 3 4 5 ... #空格隔开

  • 整数列表:{start..end} 、$(seq [start [step]] end)

  • 通过$()命令替换得到列表

例如:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
um=0
for num in `seq 100`;do   #列表1-100的表示方法; {1..100} seq 100
    let sum=$sum+$num  #let
done
echo $sum

[root@CentOS7 ~]# bash 1.sh 
5050

乘法表:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
for i in {1..9};do
    for j in {1..9};do
	 if [ $i -ge $j ];then
 	   echo -e "$i * $j = $[i*j]\t\c"  #\c很关键
         fi
    done
    echo
done
#\t:一个制表位,实现对齐的功能 \n:换行符 \c:有了-e参数,我们也可以使用转义字符\c来强制 echo 命令不换行
[root@CentOS7 ~]# bash 1.sh 
1 * 1 = 1	
2 * 1 = 2	2 * 2 = 4	
3 * 1 = 3	3 * 2 = 6	3 * 3 = 9	
4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16	
5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25	
6 * 1 = 6	6 * 2 = 12	6 * 3 = 18	6 * 4 = 24	6 * 5 = 30	6 * 6 = 36	
7 * 1 = 7	7 * 2 = 14	7 * 3 = 21	7 * 4 = 28	7 * 5 = 35	7 * 6 = 42	7 * 7 = 49	
8 * 1 = 8	8 * 2 = 16	8 * 3 = 24	8 * 4 = 32	8 * 5 = 40	8 * 6 = 48	8 * 7 = 56	8 * 8 = 64	
9 * 1 = 9	9 * 2 = 18	9 * 3 = 27	9 * 4 = 36	9 * 5 = 45	9 * 6 = 54	9 * 7 = 63	9 * 8 = 72	9 * 9 = 81	
while循环:

格式:

while 判断条件;do
      所作的操作
done

#循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;
#条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环

例如:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
sum=0
i=1
while test $i -le 100 ;do
	let sum=$sum+$i
	let i=i+1
done
echo sum==$sum

[root@CentOS7 ~]# bash 1.sh 
sum==5050

while 特殊用法 while read

作用:逐行处理文本

posted on 2022-10-18 15:02  背对背依靠  阅读(53)  评论(0编辑  收藏  举报