-eq、-ne、-gt、-ge、-lt、-le英文意思
阿新 • • 發佈:2019-01-07
在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