我正在尋找類似的工具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"
.