linux if語句內判斷引數
shell 程式設計中使用到得if語句內判斷引數
–b 當file存在並且是塊檔案時返回真-c 當file存在並且是字元檔案時返回真-d 當pathname存在並且是一個目錄時返回真-e 當pathname指定的檔案或目錄存在時返回真-f 當file存在並且是正規檔案時返回真-g 當由pathname指定的檔案或目錄存在並且設定了SGID位時返回為真-h 當file存在並且是符號連結檔案時返回真,該選項在一些老系統上無效-k 當由pathname指定的檔案或目錄存在並且設定了“粘滯”位時返回真-p 當file存在並且是命令管道時返回為真-r 當由pathname指定的檔案或目錄存在並且可讀時返回為真-s 當file存在檔案大小大於0時返回真-u 當由pathname指定的檔案或目錄存在並且設定了SUID位時返回真-w 當由pathname指定的檔案或目錄存在並且可執行時返回真。一個目錄為了它的內容被訪問必然是可執行的。-o 當由pathname指定的檔案或目錄存在並且被子當前程式的有效使用者ID所指定的使用者擁有時返回真。
UNIX Shell 裡面比較字元寫法:
-eq 等於-ne 不等於-gt 大於-lt 小於-le 小於等於-ge 大於等於-z 空串= 兩個字元相等!= 兩個字元不等-n 非空串
-------------------------------------------------------------------------
更為詳細的說明:
運算子 描述 示例
檔案比較運算子
-e filename 如果 filename 存在,則為真 [ -e /var/log/syslog ]
-d filename 如果 filename 為目錄,則為真 [ -d /tmp/mydir ]
-f filename 如果 filename 為常規檔案,則為真 [ -f /usr/bin/grep ]
-L filename 如果 filename 為符號連結,則為真 [ -L /usr/bin/grep ]
-r filename 如果 filename 可讀,則為真 [ -r /var/log/syslog ]
-w filename 如果 filename 可寫,則為真 [ -w /var/mytmp.txt ]
-x filename 如果 filename 可執行,則為真 [ -L /usr/bin/grep ]
filename1 -nt filename2 如果 filename1 比 filename2 新,則為真 [ /tmp/install/etc/services -nt /etc/services ]
filename1 -ot filename2 如果 filename1 比 filename2 舊,則為真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字串比較運算子 (請注意引號的使用,這是防止空格擾亂程式碼的好方法)
-z string 如果 string 長度為零,則為真 [ -z $myvar ]
-n string 如果 string 長度非零,則為真 [ -n $myvar ]
string1 = string2 如果 string1 與 string2 相同,則為真 [ $myvar = one two three ]
string1 != string2 如果 string1 與 string2 不同,則為真 [ $myvar != one two three ]
運算子 描述 示例
檔案比較運算子
-e filename 如果 filename 存在,則為真 [ -e /var/log/syslog ]
-d filename 如果 filename 為目錄,則為真 [ -d /tmp/mydir ]
-f filename 如果 filename 為常規檔案,則為真 [ -f /usr/bin/grep ]
-L filename 如果 filename 為符號連結,則為真 [ -L /usr/bin/grep ]
-r filename 如果 filename 可讀,則為真 [ -r /var/log/syslog ]
-w filename 如果 filename 可寫,則為真 [ -w /var/mytmp.txt ]
-x filename 如果 filename 可執行,則為真 [ -L /usr/bin/grep ]
filename1 -nt filename2 如果 filename1 比 filename2 新,則為真 [ /tmp/install/etc/services -nt /etc/services ]
filename1 -ot filename2 如果 filename1 比 filename2 舊,則為真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字串比較運算子 (請注意引號的使用,這是防止空格擾亂程式碼的好方法)
-z string 如果 string 長度為零,則為真 [ -z $myvar ]
-n string 如果 string 長度非零,則為真 [ -n $myvar ]
string1 = string2 如果 string1 與 string2 相同,則為真 [ $myvar = one two three ]
string1 != string2 如果 string1 與 string2 不同,則為真 [ $myvar != one two three ]
算術比較運算子
num1 -eq num2 等於 [ 3 -eq $mynum ]
num1 -ne num2 不等於 [ 3 -ne $mynum ]
num1 -lt num2 小於 [ 3 -lt $mynum ]
num1 -le num2 小於或等於 [ 3 -le $mynum ]
num1 -gt num2 大於 [ 3 -gt $mynum ]
num1 -ge num2 大於或等於 [ 3 -ge $mynum ]
num1 -eq num2 等於 [ 3 -eq $mynum ]
num1 -ne num2 不等於 [ 3 -ne $mynum ]
num1 -lt num2 小於 [ 3 -lt $mynum ]
num1 -le num2 小於或等於 [ 3 -le $mynum ]
num1 -gt num2 大於 [ 3 -gt $mynum ]
num1 -ge num2 大於或等於 [ 3 -ge $mynum ]
指令碼示例:
#!/bin/bash
# This script prints a message about your weight if you give it your
# weight in kilos and hight in centimeters.
if [ ! $# == 2 ]; then
echo "Usage: $0 weight_in_kilos length_in_centimeters"
exit
fi
# This script prints a message about your weight if you give it your
# weight in kilos and hight in centimeters.
if [ ! $# == 2 ]; then
echo "Usage: $0 weight_in_kilos length_in_centimeters"
exit
fi
weight="$1"
height="$2"
idealweight=$[$height - 110]
if [ $weight -le $idealweight ] ; then
echo "You should eat a bit more fat."
else
echo "You should eat a bit more fruit."
fi
# weight.sh 70 150
You should eat a bit more fruit.
# weight.sh 70 150 33
Usage: ./weight.sh weight_in_kilos length_in_centimeters
height="$2"
idealweight=$[$height - 110]
if [ $weight -le $idealweight ] ; then
echo "You should eat a bit more fat."
else
echo "You should eat a bit more fruit."
fi
# weight.sh 70 150
You should eat a bit more fruit.
# weight.sh 70 150 33
Usage: ./weight.sh weight_in_kilos length_in_centimeters
位置引數 $1, $2,..., $N,$#代表了命令列的引數數量, $0代表了指令碼的名字,
第一個引數代表$1,第二個引數代表$2,以此類推,引數數量的總數存在$#中,上面的例子顯示了怎麼改變指令碼,如果引數少於或者多餘2個來列印出一條訊息。
執行,並檢視情況。
# bash -x tijian.sh 60 170
+ weight=60
+ height=170
+ idealweight=60
+ '[' 60 -le 60 ']'
+ echo 'You should eat a bit more fat.'
You should eat a bit more fat.
+ height=170
+ idealweight=60
+ '[' 60 -le 60 ']'
+ echo 'You should eat a bit more fat.'
You should eat a bit more fat.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/195110/viewspace-1120084/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 判斷語句
- C 判斷語句
- 012 判斷語句
- JS的判斷語句:判斷、迴圈JS
- 判斷語句的使用
- python之判斷語句Python
- Java 判斷語句 - if…else/switchJava
- Python入門 - 判斷語句Python
- 11.9 python之判斷語句Python
- 條件判斷語句 if case
- Linux判斷上一個語句是否執行成功Linux
- Python之判斷迴圈語句Python
- Linux下邏輯測試語句引數和流程控制語句 if語句Linux
- python迴圈語句判斷的使用Python
- day31-33 關於點選事件內的判斷語句事件
- Nginx實現IF語句裡的AND,OR多重判斷Nginx
- 肖sir__python之判斷語句4.1Python
- Go的條件判斷語句的使用Go
- nginx判斷路徑是否含有某個引數做判斷Nginx
- makefile--if條件判斷語句的語法與使用
- if、else if、else判斷語句的幾個小例子
- MySQL條件判斷IF,CASE,IFNULL語句詳解MySqlNull
- Python中if條件判斷語句怎麼用?Python
- C語言判斷素數,判斷質素演算法C語言演算法
- Java中的條件判斷語句-動力節點Java
- 從零開始學習C++之if判斷語句C++
- 最簡潔的python條件判斷語句寫法Python
- 判斷水仙花數C語言C語言
- linux 中如何判斷變數是否為數值Linux變數
- vue.js判斷網址引數是否有效Vue.js
- 前端筆記之JavaScript(三)關於條件判斷語句、迴圈語句那點事前端筆記JavaScript
- python兩種簡潔的條件判斷語句寫法Python
- python基礎之如何用if語句判斷多個條件?Python
- 一個小技巧助您減少if語句的狀態判斷
- 素數判斷
- 判斷素數
- 『忘了再學』Shell流程控制 — 34、if條件判斷語句(二)
- 『忘了再學』Shell流程控制 — 33、if條件判斷語句(一)
- C語言中迴圈語句while 中判斷條件出現 || 和 && 的區別C語言While