linux指令碼返回值

2021-06-08 15:31:49 字數 1048 閱讀 5105

在 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...