我正在寻找一个类似的工具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
)。在不同脚本中调用该脚本的方法:
方法 1:
/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"
。