Linux shell脚本编程总结(三、控制语句、循环语句与正则表达式)

在shell脚本中,控制语句有if语句、case语句(类似C语言的switch...case),循环语句有while、for和until循环。

shell脚本的if语句,前两篇shell系列的博文已经用了不少。接下来上代码,shell脚本的if语句和case语句都是比较简单的, 相信有点基础的人都应该很容易掌握,对循环和正则表达式感兴趣的可以直接翻到本文最后面。

1.shell脚本的if语句

#!/bin/bash
a=1
b=2
if [ $a -gt $b ]
then
    echo "a大于b"
elif [ $a -lt $b ]
then
    echo "a小于b"
else
    echo "a等于b"
fi

表达式为:

  1. if [ 表达式 1 ]
  2. then
  3. 执行语句1
  4. elif [ 表达式 2 ]
  5. 执行语句2
  6. then
  7. else
  8. 执行语句3
  9. fi

黄色部分为可选部分,类似C语言的if语句

2.shell脚本的case语句,case语句与c语言的switch...case类似

#!/bin/bash
a=4
case $a in
        1) echo "a = 1"
                ;;
        2) echo "a = 2"
                ;;
        3) echo "a = 3"
                ;;
        4) echo "a = 4"
                ;;
        *) echo "You do not select a number between 1 to 4"
                ;;
esac

3.shell脚本循环语句

#!/bin/bash
for num in 1 2 3 4 5 6 7 9 
do
    echo "num = $num"
done

i=0
echo "num = $num"
while(($i<$num))
do
    echo "i=$i"
    i=`expr $i + 1`
done   

4.shell脚本用正则表达式判断输入是不是数字

shell脚本之正则表达式

#!/bin/bash
function is_num()
{
    num=$1
    n1=`echo $num|sed 's/[0-9]//g'`
    if [ ! -z $n1 ]
    then
        #echo "this is not a num,please input num"
        return 0
    fi    
    return 1
}

function for_valid()
{
    for num in $@
    do 
        is_num $num
        if [ $? -eq 0 ]; then
            echo "$num 不是数字"
            #return 0
        else
            echo "$num 是数字"
            #return 1
        fi
    done  
}

for_valid 1 2 a b c 7 8 


 

你可能感兴趣的:(Linux)