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
下一篇 2017-04-17

相關推薦

  • Trie樹:應用于統計和排序

    1. 什么是trie樹 1.Trie樹 (特例結構樹)         Trie樹,又稱單詞查找樹、字典樹,是一種樹形結構,是一種哈希樹的變種,是一種用于快速檢索的多叉樹結構。典型應用是用于統計和排序大量的字符串(但不僅限于字符串),所以經常被搜索引擎系統用于文本詞頻統計。它的優點是:最大限度地減少…

    Linux干貨 2015-04-08
  • bash腳本編程實例

    bash腳本編程實例 1.寫一個腳本 能接受四個參數:start、stop、restart、status start:輸出“starting腳本名finished.” restart:輸出“restarting腳本名finished.” stop:輸出“stoping腳本名finished.” status:輸出“status腳本名finished.” 其他…

    Linux干貨 2017-09-04
  • Linux文件權限及ACL

    文件權限 文件或目錄可存取的身份分為3類,owner/group/others (所屬者/所屬組/其他人) ,所以訪問一個文件或目錄的權限分為三種, 所有者權限,所屬組權限,其他人權限 (通過ll text.log查看)。 在linux系統中常用的權限分為3種 r(read) w(write) x(excute)。 對文件或目錄的權限進行修改時,要用到chm…

    Linux干貨 2017-06-01
  • NTP服務器搭建

        1、NTP(Network Time Protocol)         在計算機世界中,NTP(Network Time Protocol,網絡時間協議)被廣泛用于對時間的統一性和準確性要求非常高的場景,是用來使網絡中的各個計算機時間同步的一種協議?!?/p>

    Linux干貨 2015-11-18
  • 修復引導啟動

    修復MBR 備份MBR: dd if=/dev/sda of=/root/mbr.bak ?bs=1 ?count=512 ?破壞 dd if=/dev/zero of=/dev/sda ?bs=1?count=446 這里只要小于等于446即可。 借助安裝光盤修復 裝入光盤,在光盤引導界面選擇 然后全部默認進入救援命令界面 切換根目錄 使用grub-ins…

    2017-12-24
  • bash的命令執行狀態返回值及命令行展開詳解

    命令執行狀態返回值及命令行展開是bash的2個基本特性,其詳細特點及應用如下:   一、命令執行的狀態結果:bash通過狀態返回值來輸出此結果                 成功:0             …

    Linux干貨 2016-11-06

評論列表(1條)

  • renjin
    renjin 2017-04-21 11:00

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

欧美性久久久久