linux 中的if else语句
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
一下看一個例子:
以上例子中: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
執行結果:
可以看到打印出true,
將以上函數的if head -1 /etc/passwd 改為if ?head -1 /etc/shadow?
執行結果:
第二種:
大多數情況下,可以使用測試命令(test)來對條件進行測試。比如可以比較字符串、判斷文件是否存在及是否可讀等等,test命令也可以[ ]來代替,這是他的另一種形式。
例如 :if ?test ?2>3 ?等價于 ?if ?[ 2>3 ](注意[ ]的開始和結束都有空格,打于符號2和3之間沒有空格)
將以上函數改為:
judge(){
if test ? "aaa" = "bbb"
then
echo 'true'
else
echo 'false'
fi
}
judge
執行結果:
第三種(即使通與test的另一種形式):
將if test ? "aaa" = "bbb" 改為 ?if [ "aaa" = "bbb"]
執行結果:
注意:if ?test ?2>3 ?與 if ?test ?2 > 3 是有 區別的,注意比較符號之間的空格
? ? ? ? ? ? if [ 2>3 ] ?與 [ 2 > 3 ] ?也是有區別的,同上
總結
以上是生活随笔為你收集整理的linux 中的if else语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell 中的return
- 下一篇: 解决Eclipse中Android图标不