Shell 語言中的if elif else

2021-10-02 17:43:11 字數 1068 閱讀 9952

一、if的基本語法:

if [ command ]

then

符合該條件執行的語句

elif [ command ]

then

符合該條件執行的語句

else

符合該條件執行的語句

fielif可以巢狀多個

裡邊必須要加空格,必須要寫成if_[條件];then,其中_代表空格

二、字串判斷

[ -z str ] 當str的長度為0則為真 ,即判斷是否為空,空即是真(空串);

[ -n str ] 當str長度非0則為真 ,即判斷是否為非空,非空即是真(串非空);

[ str1 = str2 ] 當兩個字串相同則為真 ;

[ str1 != str2 ] 當字串不相同則為真 ;

[ str1 ] 當字串為非空時為真

三、數值判斷

int1 -eq int2 兩數相等為真 =

int1 -ne int2 兩數不等為真 <>

int1 -gt int2 int1大於int1為真 >

int1 -ge int2 int1大於等於int2為真 >=

int1 -lt int2 int1小於int2為真 <

int1 -le int2 int1小於等於int2為真 <=

四、檔案的判斷

-r file  使用者可讀為真

-w file 使用者可寫為真

-x file 使用者可執行為真

-f file  檔案為正規檔案為真

-d file 檔案為目錄為真

-c file 檔案為字元特殊檔案為真

-b file 檔案為塊特殊檔案為真

-s file 檔案大小非0時為真

-t file  當檔案描述符(預設為1)指定的裝置為終端時為真

五、複雜邏輯判斷

-a     與

-o    或

!    非

&&、|| 即包含又包含的意思

eg:條件如果a>b且a$b ]] && [[ $a < $c ]]

if if 和 if elif 的區別

再一次程式設計中意外使用了if if 也實現了 if elif的功能,所以搜尋了下其中的區別 1 if if 和 if elif 是有區別的,只是在某些情況下才會一樣的效果 2 隨意使用會導致意外的錯誤。現在舉幾個例子區別 程式一defanalyzeage age ifage 21 print yo...

C語言中system呼叫shell指令碼的問題

在c語言中使用system 語句呼叫shell指令碼時,c語言程式並不會等待system 語句執行完畢尤其在shell指令碼有呼叫bash下命令時並向檔案輸出時,又無法用重新整理標準輸出流緩衝區的方式來解決亂序輸出的問題.例如 c中部分 for int i 0 i 5 i system test.s...

在C語言中執行shell命令

在 c語言中執行shell 命令1 system 系統呼叫 int system const char string system 會呼叫fork 產生子程序,由子程序來呼叫 bin sh c string 來執行引數string字串所代表的命令,此命令執行完後隨即返回原呼叫的程序。在呼叫syste...