Linux下撰寫script檔時,如何判斷最近一次程式執行的回傳值

在Linux系統中,你可以使用$?特殊變量來獲取最近一次命令或腳本執行的返回值。這個變量包含了最近一個在shell中執行的命令的退出狀態。

以下是如何使用它的示例:

  1. 首先,執行一個命令,例如ls /nonexistent,這個命令會失敗,因為/nonexistent是一個不存在的目錄。
$ ls /nonexistent
ls: cannot access '/nonexistent': No such file or directory
  1. 然後,使用echo $?來列印出這個命令的退出狀態。
$ echo $?
2

在這個例子中,退出狀態是2,這通常是檔案或目錄不存在時的標準退出碼。

  1. 如果你在腳本中想要檢查這個退出狀態,你可以將$?直接嵌入到腳本中。

以下是一個簡單的腳本示例,它會檢查上一個命令的退出狀態,並根據狀態做出相應的動作:

#!/bin/bash

# 執行一個命令
if ls /nonexistent >/dev/null 2>&1; then
    echo "Command succeeded"
else
    echo "Command failed with exit status: $?"
fi

# 或者,你可以直接使用$?
echo "Exit status of the last command is: $?"

當你運行這個腳本時,它會列印出上一個命令的退出狀態。

請注意,退出狀態是整數,通常在0到255之間。0表示命令成功執行,其他值通常用於表示不同的錯誤類型。你可以根據需要檢查和處理這些值。