1. 程式人生 > >-eq、-ne、-gt、-ge、-lt、-le英文意思

-eq、-ne、-gt、-ge、-lt、-le英文意思

在shell指令碼中,使用-eq、-ne、-gt、-ge、-lt、-le進行整數的比較。英文意思分別為:

-eq :equal(相等)

-ne :not equal(不等) 

-gt  :greater than(大於)

-ge :greater than or equal(大於或等於)

-lt   :less than(小於)

-le  :less than or equal(小於或等於)

注意:在shell中這些符號只能用於整數的比較,不能用於字串。

一個小經驗:

①在執行如下程式碼的時候,記得echo之後的變數一定要用“”(雙引號)括起來,不括的話一般情況下沒有問題,但是在遇到如line的值為“** RTV Order **”這種情況時,我的程式碼出錯了。$1是一個檔案變數。-z :判斷字串是否為null,即長度為0(zero)。 -n :判斷字串不為空(non-zero).

so_ship_line=""
  exec 3<$1
    while read -u3 line
    do
       if [ -z "$so_ship_line" ];then
        read so_ship_line <<< ` echo "$line" | sed -n '/\*\* S\/O Shipped /p' `
        # echo "so_ship_line:$so_ship_line"
       else
        read dollar_ship_line <<< ` echo "$line" | sed -n '/Kdollar Ship/p' `
        if [ -n "$dollar_ship_line" ];then
          echo "$dollar_ship_line" >> Fiscal_temp.log
          dollar_ship_array=($dollar_ship_line)
          # echo "dollar_ship_line:$dollar_ship_line"
          # echo ${#dollar_ship_array[@]} "============" ${dollar_ship_array[@]}
          break
        fi
       fi
    done