回顯狀態代碼?

回顯狀態代碼?

我正在尋找類似的工具echo,但是用於狀態代碼

$ sts 120
$ echo $?
120

我知道您可以在類似 bash 的環境中使用子 shell:

$ (exit 120)
$ echo $?
120

但有沒有辦法獨立於你的 shell 來做到這一點?

答案1

您可以編寫一個非常簡單的腳本來檢查參數是否已傳遞,否則返回0

#!/bin/bash

if [ $# -eq 1 ]; then
  # There's no parameter
  exit 0
else
  exit $1
fi

授予其執行權限( chmod +x returnscript.sh)。在不同腳本中呼叫該腳本的方法:

方式一:

/path/to/returnscript.sh 100
retcode=$?
# retcode = 100

方式2:

/path/to/returnscript.sh
retcode=$?
# retcode = 0

答案2

我不確定我是否理解這個問題。您似乎正在尋找一個可以在命令列上指定其退出狀態的命令,而無需使用 shell 中內建的功能。為什麼?是否有一些 shell(exit 120)不起作用?

以下是一些可能性:

  • awk 'BEGIN {exit 120}'
  • echo | sed 'q120'
  • sh -c "exit 120"
  • 編寫您自己的腳本來執行exit "$1".

相關內容