确定“return”内置函数的退出状态

确定“return”内置函数的退出状态

我正在阅读有关陷阱的内容,但在我的 shell 脚本中只有 return 对我有用,所以想知道它返回什么状态或代码,所以我尝试的是,

#!/bin/bash
seeOutput=`return`
echo $seeOutput

它只是返回一个新行,当在终端上完成时,它说,

-bash: return: can only `return' from a function or sourced script

我已经知道了:p 我只需要知道“return”的退出状态。

答案1

你正在做的是调用一个return没有意义的 shell 命令。一般来说,return如果后面没有任何值,则返回最后执行的命令的退出状态。

From man:导致函数退出并返回 n 指定的返回值。如果省略 n,则返回状态为函数体中最后执行的命令的状态。

答案2

返回码存储在 $?多变的。

false ; echo $?
true ; echo $?

会回来

1
0

unix 约定是 0 表示 OK。在您的示例中, seeOuput 保存后面引用的命令的任何输出。

不要弄错输出和返回代码。

答案3

这就是我的使用方式:

f()
{
   ls $AAA
   return $?
}

g()
{
   f
   return $?
}

d()
{
   g
   echo $?
}

AAA=
d

_

<contents of dir>
0

_

AAA=sdsasdasd
d

_

ls: sdsasdasd: No such file or directory
2

相关内容