1、case语句
-
[root@localhost day1121]# cat test1.sh #!/bin/bash case $1 in "1") echo "您输入的是1" ;; "2") echo "您输入的是2" ;; *) echo "您输入的是其他" ;; esac [root@localhost day1121]# bash test1.sh 您输入的是其他 [root@localhost day1121]# bash test1.sh 1 您输入的是1 [root@localhost day1121]#
-
案例: 判断⽤户输⼊的字符类型使⽤case,字母类型[a-z][A-Z] 数字类型[0-9] 其他
[root@localhost day1121]# cat test2.sh #!/bin/bash read -p "请输入任意一个字符" ch case $ch in [A-Z] | [a-z]) echo "字母" ;; [0-9]) echo "数字" ;; *) echo "其他" ;; esac [root@localhost day1121]# bash test2.sh 请输入任意一个字符a 字母 [root@localhost day1121]# bash test2.sh 请输入任意一个字符1 数字 [root@localhost day1121]# bash test2.sh 请输入任意一个字符/ 其他 [root@localhost day1121]#
2、循环语句
-
for 变量 in 空格分隔的数据列表;do 语句块 done
[root@localhost day1121]# cat test3.sh #!/bin/bash for i in 1 2 3 4 5 do echo $i done [root@localhost day1121]# bash test3.sh 1 2 3 4 5 [root@localhost day1121]# cat test4.sh #!/bin/bash for i in $* do echo $i done [root@localhost day1121]# bash test4.sh [root@localhost day1121]# bash test4.sh [root@localhost day1121]# bash test4.sh aa bb cc aa bb cc [root@localhost day1121]#
-
for 变量 in {起始值..终⽌值..步进值};do 语句块 done
[root@localhost day1121]# cat test5.sh #!/bin/bash for i in {1..5..1} do echo $i done [root@localhost day1121]# bash test5.sh 1 2 3 4 5 [root@localhost day1121]# cat test6.sh #!/bin/bash for i in {101..105..1} do echo hadop$i done [root@localhost day1121]# bash test6.sh hadop101 hadop102 hadop103 hadop104 hadop105 [root@localhost day1121]# cat test7.sh #!/bin/bash for i in hadop{101..105} do echo $i done [root@localhost day1121]# bash test7.sh hadop101 hadop102 hadop103 hadop104 hadop105 [root@localhost day1121]#
-
for (( 初始值; 条件判断; 步进值 )) ;do 语句块 done
[root@localhost day1121]# cat test8.sh #!/bin/bash for ((i=1;i<=5;i++)) do echo $i done [root@localhost day1121]# bash test8.sh 1 2 3 4 5 [root@localhost day1121]#
-
while循环
-
初始计数器 while [ 计数器判断 ] do 语句块 计数器步进done
[root@localhost day1121]# cat test9.sh #!/bin/bash i=1 while [ $i -le 5 ] do echo $i let i=i+1 done [root@localhost day1121]# bash test9.sh 1 2 3 4 5 [root@localhost day1121]#
-
break 退出循环 , continue 重新进⼊下次循环
[root@localhost day1121]# cat test10.sh #!/bin/bash #break continue i=1 while [ $i -le 10 ] do echo $i let i=i+1 if [ $i -eq 6 ] then break fi done [root@localhost day1121]# bash test10.sh 1 2 3 4 5 [root@localhost day1121]#
[root@localhost day1121]# cat test11.sh #!/bin/bash #break continue i=0 while [ $i -lt 10 ] do let i=i+1 if [ $i -eq 7 ] then continue fi echo $i done [root@localhost day1121]# bash test11.sh 1 2 3 4 5 6 8 9 10 [root@localhost day1121]#
-
-
until 否定 while
#!/bin/bash i=1 until [ $1 -ge 5 ] do echo $i let i=i+1 done
-
练习: 求1-100的和
[root@localhost day1121]# cat test13.sh #!/bin/bash sum=o for ((i=1;i<=100;i++)) do let sum=i+sum done echo "1+2+3+...+100=${sum}" [root@localhost day1121]# bash test13.sh 1+2+3+...+100=5050 [root@localhost day1121]#
-
练习 99乘法表
[root@localhost day1121]# cat test14.sh #!/bin/bash for ((i=1;i<=9;i++)) do for ((j=1;j<=i;j++)) do echo -ne "$i*$j=$((i*j))\t" done echo done [root@localhost day1121]# bash test14.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 [root@localhost day1121]#