下面是一个简单的脚本,我要说明我要做什么:

ssh -x user@remote-host "
function wtf
{
    rm /
}; wtf"

wait

然后我在命令行中这样运行:
> if ./wtf.sh; then echo yes; else echo no; fi
rm: cannot remove '\': Is a directory
yes

显然rm命令失败了,但wtf.sh成功了。我希望wtf.sh也能返回一个负出口,这样我就可以检测到它。我该怎么做?

最佳答案

使用$?保存最近执行的命令的返回代码。可能您的实际脚本没有示例简单(因此wait)。变量retval存储wtf函数的返回代码,该值从脚本返回。

ssh -x user@remote-host "
function wtf
{
    rm /
    return $?
}; wtf; return $?"

wait

关于bash - 我如何从bash中通过ssh远程运行的函数中检索错误代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16993790/

10-10 17:39