欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Shell腳本IF條件判斷和判斷條件總結(jié)

 更新時間:2014年10月22日 11:23:13   投稿:junjie  
這篇文章主要介紹了Shell腳本IF條件判斷和判斷條件總結(jié),本文先是給出了IF條件判斷的語法,然后給出了常用的判斷條件總結(jié),需要的朋友可以參考下

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

復(fù)制代碼 代碼如下:

      if list then
          do something here
      elif list then
          do another thing here
      else
         do something else here
      fi 
  
EX1:
復(fù)制代碼 代碼如下:

#!/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      當(dāng)兩個串有相同內(nèi)容、長度時為真
str1 != str2      當(dāng)串str1和str2不等時為真
-n str1        當(dāng)串的長度大于0時為真(串非空)
-z str1        當(dāng)串的長度為0時為真(空串)
str1           當(dāng)串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     當(dāng)文件描述符(默認(rèn)為1)指定的設(shè)備為終端時為真

4、復(fù)雜邏輯判斷

-a         與
-o        或
!        非

結(jié)尾

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

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

附 表:

[ -a FILE ]  如果 FILE 存在則為真。 
[ -b FILE ]  如果 FILE 存在且是一個塊特殊文件則為真。 
[ -c FILE ]  如果 FILE 存在且是一個字特殊文件則為真。 
[ -d FILE ]  如果 FILE 存在且是一個目錄則為真。 
[ -e FILE ]  如果 FILE 存在則為真。 
[ -f FILE ]  如果 FILE 存在且是一個普通文件則為真。 
[ -g FILE ] 如果 FILE 存在且已經(jīng)設(shè)置了SGID則為真。 [ -h FILE ]  如果 FILE 存在且是一個符號連接則為真。 
[ -k FILE ]  如果 FILE 存在且已經(jīng)設(shè)置了粘制位則為真。 
[ -p FILE ]  如果 FILE 存在且是一個名字管道(F如果O)則為真。 
[ -r FILE ]  如果 FILE 存在且是可讀的則為真。 
[ -s FILE ]  如果 FILE 存在且大小不為0則為真。 
[ -t FD ]  如果文件描述符 FD 打開且指向一個終端則為真。 
[ -u FILE ]  如果 FILE 存在且設(shè)置了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 指向相同的設(shè)備和節(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.

相關(guān)文章

  • 編寫shell腳本將VPS上的數(shù)據(jù)備份到Dropbox網(wǎng)盤的方法

    編寫shell腳本將VPS上的數(shù)據(jù)備份到Dropbox網(wǎng)盤的方法

    這篇文章主要介紹了編寫shell腳本將VPS上的數(shù)據(jù)備份到Dropbox網(wǎng)盤的方法,注意Dropbox在國內(nèi)訪問的網(wǎng)絡(luò)相關(guān)問題,需要的朋友可以參考下
    2015-07-07
  • Linux進程通信(IPC)方式簡介

    Linux進程通信(IPC)方式簡介

    linux下進程間通信的幾種主要方式:管道(pipe)和有名管道(FIFO)、信號(signal)、消息隊列、共享內(nèi)存(shared memory)、信號量(semaphore)、套接字(socket),本文對這些做簡單介紹
    2013-12-12
  • linux系統(tǒng)下dd命令的使用方法

    linux系統(tǒng)下dd命令的使用方法

    這篇文章主要介紹了linux系統(tǒng)下dd命令的使用方法,dd命令的功能是把指定的輸入文件拷貝到指定的輸出文件中,并且在拷貝過程中可以進行格式轉(zhuǎn)換
    2014-01-01
  • 淺析Linux tar打包命令

    淺析Linux tar打包命令

    這篇文章主要介紹了Linux tar打包命令,本文給大家?guī)戆藗€范例,每個范例都給大家介紹的非常詳細,需要的朋友可以參考下
    2018-06-06
  • Linux BASH多進程并行處理的方法實現(xiàn)

    Linux BASH多進程并行處理的方法實現(xiàn)

    Linux下BASH多進程并行處理的實現(xiàn)代碼,需要的朋友可以參考下
    2013-01-01
  • Linux shell常用的73條命令總結(jié)

    Linux shell常用的73條命令總結(jié)

    對于經(jīng)常使用linux系統(tǒng)的朋友們來說,基本常用的shell命令是少不了的,下面這篇文中就為大家總結(jié)了Linux shell的常用命令,有需要的朋友們可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • 詳解shell 函數(shù)定義與調(diào)用

    詳解shell 函數(shù)定義與調(diào)用

    這篇文章主要介紹了shell 函數(shù)定義與調(diào)用的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)shell,感興趣的朋友可以了解下
    2020-09-09
  • 常用Linux Shell進階部分小結(jié)

    常用Linux Shell進階部分小結(jié)

    這篇文章主要介紹了常用Linux Shell進階部分小結(jié),歡迎收藏,隨看隨記,需要的朋友可以參考下
    2015-07-07
  • Shell編程 Bash引號的那點事

    Shell編程 Bash引號的那點事

    促使我想寫這個系列的文章,是因為看到總有人提到相同的問題,犯相同的錯誤,曾經(jīng)我也是這么過來的,不忍心看到后面還有人經(jīng)常這么曲折的過來
    2015-01-01
  • Shell腳本位置參數(shù)的具體使用

    Shell腳本位置參數(shù)的具體使用

    本文主要介紹了Shell腳本位置參數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論