3

这是一个简单的脚本,我必须说明我正在尝试做的事情:

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返回一个负退出,以便我可以检测到它。我怎样才能做到这一点?

4

1 回答 1

2

使用$?which 保存最近执行的命令的返回码。可能您的实际脚本并不像示例那么简单(因此是wait)。该变量retval存储来自 wtf 函数的返回码,并从脚本返回值。

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

wait
于 2013-06-07T22:33:39.073 回答