回显状态代码?

回显状态代码?

我正在寻找一个类似的工具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"

相关内容