Shell编程 - 流程控制

Shell编程之流程控制

  • 条件选择( if )
  • 多条件选择( case )
  • 循环( for + while + until )


<一> 条件选择语句

  • 多行书写规范
  • 单行书写规范
#!/bin/bash
a=10
if [ ! $a -eq 11 ]
then
    echo "a!=11"
fi

if [ ! $a -eq 11 ];then echo "a!=11";fi

if [ $a -eq 5 ] 
then
    echo "a=5"
elif [ $a -lt 5 ] 
then
    echo "a<5"
else
    echo "a>5"
fi
  • 单层中括号与双层中括号
#!/bin/bash
a=5
if [ $a -le 10 ]
then
    echo "PASS"
fi

#逻辑运算符需要使用双括号,布尔运算符使用单括号
if [[ $a -le 10 && $a -le 5 ]] 
then
    echo "PASS"
fi
if [ $a -le 10 -a $a -le 5 ] 
then
    echo "PASS"
fi

 

<二> 多条件选择语句

#!/bin/bash
a=10

case $a in
1) echo "a=1";;
10) echo "a=10";;
esac

<三> 循环语句

  • for循环
#!/bin/bash
b=(1 2 3 4 5 "hello")
for i in ${b[*]}
do
    echo $i
done

for((i=0;i<${#b[*]};i++))
do
    echo ${b[i]}
done
#!/bin/bash
n=10
for i in $(seq 1 $n):do
    sum=$(($i+$sum))
    #let "sum+=i"
done
echo $sum
  •  while循环
#!bin/bash
a=5
while [ $a -le 10 ]
do
    echo "PASS"
    let "a++"
done

  • until循环( 判断条件与while相反 )
#!/bin/bash
a=5
until [ $a -ge 10 ]
do
    echo "PASS"
    let "a++"
done
  • 死循环
#!/bin/bash
:<

实践:打印99乘法表

#!/bin/bash
columns=(1 2 3 4 5 6 7 8 9)
rows=(1 2 3 4 5 6 7 8 9)
for row in ${rows[*]}
do
    for column in ${columns[*]}
    do
        if [ $column -le $row ];then
            echo -n "$row*$column=`expr $row \* $column` "
        fi
    done
    echo
done

 

你可能感兴趣的:(Linux)