來源:互聯網
上載者:User
關鍵字
UNIX系統管理
shell程式設計
分支語句
完成這一章,你將能夠作以下事情:
描述條件分支語句中傳回值的作用。
使用test命令來分析一個命令的傳回值。
在shell程式中使用if和case結構。
&HTTP://www.aliyun.com/zixun/aggregation/37954.html">nbsp;1.傳回值
shell變數「? 」中保存上一個被執行命令的傳回值:
0: 命令成功地執行(真)
非零: 命令由於出現錯誤而被終止(假)
例子:
$ true $ false
$ echo $? $ echo $?
0 1
$ ls $ cp
$ echo $? Usage: cp f1 f2
0 cp [-r] f1 ....fn d1
$ echo $? $echo $?
0 1
$echo $?
0
UNIX作業系統的所有命令在結束的時候都會產生一個傳回值。 這個傳回值通常被用來判斷命令是正常結束(返回0)還是發生了錯誤(返回非零值)。 通過返回的非零值還可以看出發生的是什麼錯誤。 例如,語法錯誤通常返回1,true命令返回的就是0,而false命令返回的是1。
大多數的shell程式中的判斷語句都是通過分析這個傳回值來進行流程式控制制的。 shell中定義了一個特殊的變數「? 」用來保存上一個命令結束後的傳回值。
你可以通過以下方式來觀察前一個命令的傳回值:
echo $?
當你執行一個條件判斷(小於,大於,等於)的時候,傳回值會指明這個條件是否為真(返回0)或者為假(返回非零)。
條件判斷語句會在下幾節中講述。
2.test 命令
語法:
test expression 或者 [expression]
test命令對運算式進行測試,並且設置傳回值。
運算式的值 傳回值
true 0
false 非零(通常為1)
test命令能夠測試的物件有:
整數
字串
檔
test命令被用來評估運算式並且產生傳回值。 它用參數組成邏輯運算式並且對運算式的傳回值進行評估,test命令不會產生標準輸出,你必須必須通過傳回值來判斷test命令的結果,如果運算式為真,傳回值會為0,如果運算式為假,傳回值為1。
test命令可以被單獨使用,然後你能夠看到傳回值,但它用的最多的還是在if和while結構中用來提供條件流程式控制制。
test命令的也可以用[expression]來代替。 這種方式可以提高可讀性,特別是在處理數位或者字串的時候。
注意:在"["和"]"符號的周圍必須要有空格。