在 linux 下,不管你是啟動乙個桌面程式也好,還是在控制台下執行命令,所有的程式在結束時,都會返回乙個數字值,這個值叫做返回值,或者稱為錯誤號 ( error number )。
在控制台下,有乙個特殊的環境變數$?,儲存著前乙個程式的返回值,我們可以試試:
$ ls *.png
diagram1.png eqn.png peazip.png
eqn4.png mandelbrot.png x2.png
$ echo $? 0
先隨便執行個命令,比如像上面的 ls 某些檔案,然後通過 echo $?,列印 $? 的值~
我們發現返回值是 0,這是什麼意思呢?
只要返回值是 0,就代表程式執行成功了~
也就是說,如果 $? 變數的值不是 0 的話,就表示上乙個命令在執行的過程中出錯了。我們可以試著 ls 乙個不存在的檔案:
$ ls linuxgem
ls: 無法訪問 linuxgem: 沒有那個檔案或目錄
$ echo $? 2
這樣,對於某些列印出一堆不熟悉的英文資訊的命令,可以方便的看出它是否成功執行結束。
不過,每次都 echo $? 一下太累了,沒關係,你可以把 $? 放在提示符裡去:
galeki@localhost ~ $ export ps1="[\$?]$"
[0]galeki@localhost ~ $
export ps1="[\$?]$" 這個命令把 $? 的值放在的提示符的最前面,這樣每次執行完命令,這個值都會自動更新,這下就一目了然了~
那麼如果返回的值不是 0,我們要怎麼知道是那裡出錯了呢? 大多數的程式出錯都會給出提示,如果沒有提示的話,可以用perror這個程式來檢視錯誤的資訊,比如返回值是 2,我們可以執行:
$ perror 2
os error code 2: no such file or directory
這樣就清楚了,原來是檔案不存在~
錯誤對照表:
Linux Shell指令碼程式設計 函式返回值
shell函式返回值,常用的兩種方式 return,echo 1 return 語句 shell函式的返回值,可以和其他語言的返回值一樣,通過return語句返回。示例 bin sh function test echo echo test 1 test 1 echo print return re...
shell指令碼 之 函式返回值
shell 函式返回值 只允許返回數字,若不是則報 line 6 return haha numeric argument required 若是寫了return 則返回return 語句跟的數值,若是沒有return語句則返回最後乙個命令的執行結果。用例子說話吧 1 bin bash 2 3 re...
shell 指令碼獲取介面返回值
bin bash echo 任務 start result code echo 任務result if result code 1 then echo success exit 0 else echo failed exit 1 fi我這邊介面的返回值就是 int 型別的引數,所有返回值 resul...