Linux

echo $ 是什麼?做?

  • May 27, 2020

在我的終端中,它列印出一個看似隨機的數字127。我認為它正在列印一些變數的值,為了檢查我的懷疑,我定義了一個新變數v=4。再次執行echo $?給了我0作為輸出。

我很困惑,因為我期待 4 是答案。

來自man bash

美元?擴展到最近執行的前台管道的退出狀態。

echo $?將返回最後一個命令的退出狀態。你得到127的是最後執行的命令的退出狀態,退出了一些錯誤(很可能)。0成功完成的命令以(最有可能)的退出狀態退出。0自從echo $v上一行完成後,最後一個命令給出了輸出,沒有出現錯誤。

如果執行命令

v=4
echo $v
echo $?

你會得到如下輸出:

4 (from echo $v)
0 (from echo $?)

也試試:

true
echo $?

你會得到0.

false
echo $?

你會得到1.

true命令什麼都不做,它只是以狀態碼退出0;並且該false命令也不執行任何操作,它只是以指示失敗的狀態程式碼退出(即狀態程式碼1)。

引用自:https://unix.stackexchange.com/questions/501128