我正在阅读有关陷阱的内容,但在我的 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