NO4.Shell腳本學習——Shell條件測試和流程控制

test命令
用途:測試特定的表達式是否成立,當條件成立時,命令執行後的返回值爲0,否則爲其他數值
格式:test 表達式 [條件表達式]
常見的測試類型

  • 測試文件狀態
    NO4.Shell腳本學習——Shell條件測試和流程控制
  • 字符串比較
    NO4.Shell腳本學習——Shell條件測試和流程控制
  • 整數值比較
    NO4.Shell腳本學習——Shell條件測試和流程控制
  • 邏輯測試
    NO4.Shell腳本學習——Shell條件測試和流程控制
  • 流程判斷
    1. if語句
      NO4.Shell腳本學習——Shell條件測試和流程控制

if例子:

#!/bin/bash
#This is first shell program

score=87
if [ $score -lt 60 ];then
        echo '60以下'
    elif [ $score -ge 60 ] && [ $score -lt 70 ];then
        echo '60-70之間'
    elif [ $score -ge 70 ] && [ $score -lt 80 ];then
        echo '70-80之間'
    elif [ $score -ge 80 ] && [ $score -lt 90 ];then
        echo '80-90之間'
    else 
        echo '90以上'
fi
  • case語句

NO4.Shell腳本學習——Shell條件測試和流程控制

case例子

#!/bin/bash
#test1.sh

case $1 in
    start)
        echo 'start...'
        ;;
    stop)
        echo 'stop...'
        ;;
    restart)
        echo 'restart...'
        ;;
    *)
        echo 'please input start|stop|restart'
        ;;
esac
  • 循環控制
    while例子
#!/bin/bash
#whiletest.sh

num=3

while [ $num -gt 0 ]
do
    echo $num
    num=$(($num-1))
    sleep 1
done
    echo $num

for例子

#!/bin/bash
#fortest.sh

for i in `cat user.txt`
do
    echo $i
    useradd $i
    echo 123|passwd --stdin $i
done

break例子

#!/bin/bash
#fortest2.sh

for((i=0;i<10;i++))
do
    if [ $i -eq 5 ];then
        break
    fi
done

continue例子

#!/bin/bash
#fortest2.sh

for((i=0;i<10;i++))
do
    if [ $i -eq 5 ];then
        continue
    else
        echo $i
    fi
done

case 例子more

#!/bin/bash
#fortest2.sh

read -p 'please press one key:' key

case $key in
    [a-z]|[A-Z])
        echo '字母鍵!'
        ;;
    [0-9])
        echo '數字鍵!'
        ;;
    *)
        echo '功能鍵!'
        ;;
esac

shift遷移語句

NO4.Shell腳本學習——Shell條件測試和流程控制

shell編程Tips

NO4.Shell腳本學習——Shell條件測試和流程控制

自定義函數

NO4.Shell腳本學習——Shell條件測試和流程控制

#!/bin/bash
#fortest2.sh

function add(){
    num=$1
    tot=0

    for((i=1;i<=$num;i++))
    do
        tot=$(($tot+$i))
    done
        echo $tot
}

add 10
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章