shell腳本語言中的選擇執行

shell腳本語言中的選擇執行

概述

程序執行過程分為順序執行、選擇執行和循環執行。
順序執行是指程序按照步驟一步一步地運行。
選擇執行是指程序根據特定條件選擇兩項或者多項中的一項運行。
循環執行是指程序根據特定條件重復執行直到某個節點結束,繼續運行其他步驟。
本篇文章從判斷條件和條件判斷式簡要說明shell腳本語言中程序選擇執行的用法。

shell腳本中的判斷條件

test的測試功能

文件存在及類型測試 test [OPTION] FILE

-e 該文件名是否存在 -f 該文件名是否存在且為普通文件  -d 該文件名是否存在且為目錄 -b 該文件名是否存在且為塊設備文件 -c 該文件名是否存在且為字符設備文件  -S 該文件名是否存在且為Socket文件 -p 該文件名是否存在且為管道文件  -l 該文件名是否存在且為連接文件

文件權限測試 test [OPTION] FILE

-r 該文件名是否存在且具有可讀屬性  -w 該文件名是否存在且具有可寫屬性  -x 該文件名是否存在且具有可執行屬性  -u 該文件名是否存在且具有“SUID”屬性 -g 該文件名是否存在且具有“SGID”屬性  -k 該文件名是否存在且具有“STICKY”屬性  -s 該文件名是否存在且文件為非空白文檔

文件之間比較 test FILE1 [OPTION] FILE2

-nt 判斷前文件是否比后文件新  -ot 判斷前文件是否比后文件舊 -ef 判斷兩個文件是否指向一個inode

整數之間的比較 test INT1 [OPTION] INT2

-eq 兩數值相等  -ne 兩數值不等 -gt 前數大于后數 -lt 前數小于后數 -ge 前數大于等于后數  -le 前數小于等于后數

字符串測試

test -z STRING 判斷字符串是否為空,為空則為ture test -n STRING 判斷字符串是否為空,為空則為false //-n可省略  test STR1 = STR2 判斷前后字符串是否相同,相同為ture  test STR1 != STR2 判斷前后字符串是否相同,相同為false

邏輯鏈接

-a 與關系 -o 或關系  ! 非關系

判斷符號[]

判斷符號用法等同于test,但是要注意:

中括號內每個組件都要有空格鍵分隔

中括號內的變量要用雙引號括起來

中括號內的常量要用單引號或者雙引號括起來

條件判斷式

  1. if..then
if [條件判斷式] then 條件成立時執行指令 fi
if [條件判斷式1] then  
    條件1成立時執行指令 else[條件判斷式2] then
    條件1失敗時條件2成功時執行指令 else 條件1條件2失敗時執行指令
fi
  1. case..esac
case $變量名稱 in "變量1")
    變量名稱的值為變量1時執行指令
    ;; "變量2")
    變量名稱的值為變量2時執行指令
    ;;
    
    *)
    變量名稱的值不為變量1且不為變量2時執行指令
    exit1  
    ;;

shell腳本語言中的判斷執行就是將判斷條件和條件判斷式合理地結合使用。

原創文章,作者:easyTang,如若轉載,請注明出處:http://www.www58058.com/73592

(0)
easyTangeasyTang
上一篇 2017-04-17 20:20
下一篇 2017-04-17 21:29

相關推薦

  • 走向了一條不歸路 – – 開始

    前言:很高興在這里認識大家,跟大家一起學習一起進步。  基礎知識 1.計算機系統的組成 2.計算機的體系結構 3.存儲網絡 DAS–直接連接存儲   (數據塊)   存儲設備與主機的緊密相連       1.管理成本較低,實施簡單   &…

    2017-07-16
  • DHCP服務

    一、DHCP概述     DHCP全稱為Dynamic Host Configuration Protocol,即動態主機配置協議,其主要作用是使用網內的主機可以自動獲取到網絡相關參數信息,以達到高效管理主機的目的。     DHCP采用C/S架構,即Server/Client?!?/p>

    Linux干貨 2015-05-11
  • Linux 系統架構

    1.內核     1.1.組成部分         1.1.1.系統調用接口         1.1.2.進程管理 &n…

    Linux干貨 2016-06-04
  • 使用ext_skel和phpize構建php5擴展

    首先聲明:我們要構建的是擴展或者模塊名為hello_module.該模塊提供一個方法:hello_word. 1、php環境的搭建 我們一般使用源碼包編譯安裝,而不是binary包安裝。因為使用PHP的二進制分發包安裝有些冒險,這些版本傾向于忽略./configure的兩個重要選項,它們在開發過程中很便利: 第一個–enable-debug。這個…

    Linux干貨 2015-05-28
  • 馬哥教育網絡班22期+第五周課程練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [xw@localhost ~]$ cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d:&…

    Linux干貨 2016-10-09
  • 第二周博客作業

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 Linux文件管理類命令有cp、mv、rm 1、cp命令:copy files and directories 使用方法: 單源復制cp [OPTION]… [-T] SOURCE DEST1)如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中2)如果…

    Linux干貨 2016-12-13

評論列表(1條)

  • renjin
    renjin 2017-04-21 11:00

    主要介紹了shell中的判斷符,和測試符,內容總結的很詳細,排版也很好,建議把之前學過的盡可能的總結進來,加油,加油!

欧美性久久久久