linux Python mysql Firefox 微软 Android google java apache wordpress Ubuntu php centos shell 编程 nginx 云计算 开源 程序员 Windows

条件测试之if的判断

 要使Shell腳本程序具備一定的“智能”,面臨的第一個問題就是如何區分不同的情況以確定執行何種操作。例如,當磁盤使用率超過95%發送警告;當備份目錄不存在時能夠自動創建;當源碼編譯程序的配置失敗則不再繼續安裝等。
 Shell環境根據命令執行後的返回狀態值($?)來判斷是否執行成功,當返回值為0,表示成功,值為其他時,表示失敗。
使用專門的測試工具—test命令,可以對特定條件進行測試,並根據返回值來判斷條件是否成立(返回值0為成立)
使用test命令的兩種形式
A:test 條件表達式
B:[ 條件表達式 ]
 以上兩種方法的作用完全一樣,後者為常用。但後者需要註意方括號“[”、“]”與條件表達式之間至少有一個空格。
1. 文件測試
 文件測試指的是根據給的路徑,判斷對應的是文件還是目標,或者判斷文件是否有可讀可寫、可執行等權限。

 在上述語句結構中,條件測試操作即“[ 條件表達式 ]”語句,也可以是其他可執行的命令句;命令序列指的是一條或多條可執行的命令行,也包括嵌套使用的if語句或其他流程控制語句。
單分支的執行流程:首先判斷條件測試語句的結果,返回值為0,表示條件成立,則執行then後面的命令序列,一直遇見fi結束判斷為止,繼續執行其他腳本代碼;返回值為其他,則忽略then後面的命令序列,直接跳至fi以後執行其他腳本代碼。

延伸阅读

评论