linux命令執行返回值

2021-07-11 21:27:12 字數 1550 閱讀 8734

原文出處

在 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

這樣就清楚了,原來是檔案不存在~

錯誤對照表:

"os error code 

1:  operation not permitted"

"os error code 

2:  no such file or directory"

"os error code 

3:  no such process"

"os error code 

4:  interrupted system call"

"os error code 

5:  input/output error"

"os error code 

6:  no such device or address"

"os error code 

7:  argument list too long"

"os error code 

8:  exec format error"

"os error code 

Linux命令的返回值

在 linux 下,不管你是啟動乙個桌面程式也好,還是在控制台下執行命令,所有的程式在結束時,都會返回乙個數字值,這個值叫做返回值,或者稱為錯誤號 error number 在控制台下,有乙個特殊的環境變數 儲存著前乙個程式的返回值,我們可以試試 ls png diagram1.png eqn.pn...

命令返回值

在powershell下,上一條命令的返回值通過 lastexitcode 得出,如xcopy,robocopy等的返回值。在cmd下,上一條命令的返回值通過 errorlevel 得出 xcopy 的退出碼 0 檔案複製沒有錯誤。1 沒有找到要複製的檔案。2 使用者按 ctrl c 終止了 xco...

linux指令碼返回值

在 linux 下,不管你是啟動乙個桌面程式也好,還是在控制台下執行命令,所有的程式在結束時,都會返回乙個數字值,這個值叫做返回值,或者稱為錯誤號 error number 在控制台下,有乙個特殊的環境變數 儲存著前乙個程式的返回值,我們可以試試 ls png diagram1.png eqn.pn...