Shell腳本中怎么使用IF條件判斷和判斷條件-創(chuàng)新互聯(lián)

Shell腳本中怎么使用IF條件判斷和判斷條件,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務天津,十多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792

前言:
      無論什么編程語言都離不開條件判斷。SHELL也不例外。


代碼如下:


      if list then
          do something here
      elif list then
          do another thing here
      else
         do something else here
      fi


  
EX1:


代碼如下:


#!/bin/sh
SYSTEM=`uname -s`    #獲取操作系統(tǒng)類型,我本地是linux
if [ $SYSTEM = "Linux" ] ; then     #如果是linux的話打印linux字符串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then  
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi     #ifend


基本上和其他腳本語言一樣。沒有太大區(qū)別。不過值得注意的是。[]里面的條件判斷。

1、字符串判斷

str1 = str2      當兩個串有相同內容、長度時為真
str1 != str2      當串str1和str2不等時為真
-n str1        當串的長度大于0時為真(串非空)
-z str1        當串的長度為0時為真(空串)
str1           當串str1為非空時為真

2、數(shù)字的判斷

int1 -eq int2    兩數(shù)相等為真
int1 -ne int2    兩數(shù)不等為真
int1 -gt int2    int1大于int2為真
int1 -ge int2    int1大于等于int2為真
int1 -lt int2    int1小于int2為真
int1 -le int2    int1小于等于int2為真

3、文件的判斷

-r file     用戶可讀為真
-w file     用戶可寫為真
-x file     用戶可執(zhí)行為真
-f file     文件為正規(guī)文件為真
-d file     文件為目錄為真
-c file     文件為字符特殊文件為真
-b file     文件為塊特殊文件為真
-s file     文件大小非0時為真
-t file     當文件描述符(默認為1)指定的設備為終端時為真

4、復雜邏輯判斷

-a         與
-o        或
!        非

結尾

語法雖然簡單,但是在SHELL里使用的時候,他的功能變得強大了。


=====================================================================

附 表:

[ -a FILE ]  如果 FILE 存在則為真。 
[ -b FILE ]  如果 FILE 存在且是一個塊特殊文件則為真。 
[ -c FILE ]  如果 FILE 存在且是一個字特殊文件則為真。 
[ -d FILE ]  如果 FILE 存在且是一個目錄則為真。 
[ -e FILE ]  如果 FILE 存在則為真。 
[ -f FILE ]  如果 FILE 存在且是一個普通文件則為真。 
[ -g FILE ] 如果 FILE 存在且已經(jīng)設置了SGID則為真。 [ -h FILE ]  如果 FILE 存在且是一個符號連接則為真。 
[ -k FILE ]  如果 FILE 存在且已經(jīng)設置了粘制位則為真。 
[ -p FILE ]  如果 FILE 存在且是一個名字管道(F如果O)則為真。 
[ -r FILE ]  如果 FILE 存在且是可讀的則為真。 
[ -s FILE ]  如果 FILE 存在且大小不為0則為真。 
[ -t FD ]  如果文件描述符 FD 打開且指向一個終端則為真。 
[ -u FILE ]  如果 FILE 存在且設置了SUID (set user ID)則為真。 
[ -w FILE ]  如果 FILE 如果 FILE 存在且是可寫的則為真。 
[ -x FILE ]  如果 FILE 存在且是可執(zhí)行的則為真。 
[ -O FILE ]  如果 FILE 存在且屬有效用戶ID則為真。 
[ -G FILE ]  如果 FILE 存在且屬有效用戶組則為真。 
[ -L FILE ]  如果 FILE 存在且是一個符號連接則為真。 
[ -N FILE ]  如果 FILE 存在 and has been mod如果ied since it was last read則為真。 
[ -S FILE ]  如果 FILE 存在且是一個套接字則為真。 
[ FILE1 -nt FILE2 ]  如果 FILE1 has been changed more recently than FILE2, or 如果 FILE1 exists and FILE2 does not則為真。 
[ FILE1 -ot FILE2 ]  如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在則為真。 
[ FILE1 -ef FILE2 ]  如果 FILE1 和 FILE2 指向相同的設備和節(jié)點號則為真。 
[ -o OPTIONNAME ]  如果 shell選項 “OPTIONNAME” 開啟則為真。 
[ -z STRING ]  “STRING” 的長度為零則為真。 
[ -n STRING ] or [ STRING ]  “STRING” 的長度為非零 non-zero則為真。 
[ STRING1 == STRING2 ]  如果2個字符串相同。 “=” may be used instead of “==” for strict POSIX compliance則為真。 
[ STRING1 != STRING2 ]  如果字符串不相等則為真。
[ STRING1 < STRING2 ]  如果 “STRING1” sorts before “STRING2” lexicographically in the current locale則為真。 
[ STRING1 > STRING2 ]  如果 “STRING1” sorts after “STRING2” lexicographically in the current locale則為真。 
[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers.

看完上述內容,你們掌握Shell腳本中怎么使用IF條件判斷和判斷條件的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

名稱欄目:Shell腳本中怎么使用IF條件判斷和判斷條件-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://www.muchs.cn/article10/pcsdo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、App設計、網(wǎng)站營銷、App開發(fā)、網(wǎng)站改版、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管