if語句多條件判斷


想要編寫一個簡單的ping測試腳本,由用戶輸入起始和中指IP地址。其中需要判斷用戶輸入的IP地址必須是0-255的訪問,使用if語句進行條件判斷如下:


if [ "${beginum}" -lt 0 ] || [ "${beginnum}" -gt 255 ] || [  "${endnum}" -lt 0 ] || [  "${endnum}" -gt 255 ]


運行的時候報錯,經過幾次嘗試才知道這種if [ 條件1 || 條件2 ]格式只能支持最多2個條件。

if [[ 條件1 || 條件2 || 條件3 || 條件N ]]

使用這種` `雙重中括號的形式能夠支持多個條件



腳本如下:(還有多處未完善。。。)


#!/bin/bash
#Description
#       this program is for "for" practice
#Histroy
#2017/4/5

PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/gaga/.local/bin:/home/gaga/bin
export PATH

if [[ "$2" -lt 0 || "$2" -gt 255 ]];then
        echo "begin num should bettween(0-255)" && exit 1
fi

if [[ "$3" -lt 0 || "$3" -gt 255 ]];then
        echo "end num should bettween(0-255)" && exit 2
fi

for nethost in $(seq $2 $3)
do
        ping -c 3 -w 1 $1.${nethost} >/dev/null 2>&1 && statu=0 || statu=1
        if [ "${status}" == "1" ];then
                echo "$1.${nethost} is up!"
        else
                 
                echo "$1.${nethost} is down!"
        fi
done
exit 0

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