linux 中的ifelse語句 -开发者知识库

linux 中的ifelse語句 -开发者知识库,第1张

linux 中的if  else語句

shell中。if語句有三種形式,如下:

第一種:

if  condition

then

   command

else 

   command

在這種形式中,其中和c語言不同到是,condition實際上是一個語句列表,而不是一般的布爾表達式(也就是,最后到判斷是以condition退出的狀態為判斷依據,0表示真,非0表示假,這和c語言中恰好相反)。

在shell中命令或者函數在退出時都會返回一個小小的整數給調用他的程序,這是命令的退出狀態。

參考:http://blog.csdn.net/lyhdream/article/details/8875164

一下看一個例子:

linux 中的ifelse語句 -开发者知识库,第2张

以上例子中:head -1 /etc/passwd 的返回狀態為0,表示真

                         head -1 /etc/shadow  的返回狀態為1,表示假

我們新建一個文件judge.sh,寫入以下代碼:

judge(){
if head -1 /etc/passwd 
then
echo 'true'
else
echo 'false'
fi
}
judge

執行結果:

linux 中的ifelse語句 -开发者知识库,第3张

可以看到打印出true,

將以上函數的if head -1 /etc/passwd 改為if  head -1 /etc/shadow 

執行結果:

linux 中的ifelse語句 -开发者知识库,第4张

第二種:

大多數情況下,可以使用測試命令(test)來對條件進行測試。比如可以比較字符串、判斷文件是否存在及是否可讀等等,test命令也可以[ ]來代替,這是他的另一種形式。

例如 :if  test  2>3  等價於  if  [ 2>3 ](注意[ ]的開始和結束都有空格,打於符號2和3之間沒有空格)

將以上函數改為:

judge(){
if test   "aaa" = "bbb"
then
echo 'true'
else
echo 'false'
fi
}
judge

執行結果:

linux 中的ifelse語句 -开发者知识库,第5张

第三種(即使通與test的另一種形式):

if test   "aaa" = "bbb" 改為  if [ "aaa" = "bbb"]

執行結果:

linux 中的ifelse語句 -开发者知识库,第6张

注意:if  test  2>3  與 if  test  2 > 3 是有 區別的,注意比較符號之間的空格

            if [ 2>3 ]  與 [ 2 > 3 ]  也是有區別的,同上






最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复