我正在尝试通过Robot Framework远程执行一个命令,它通过Robot框架失败,并给出错误的退出状态13。
但是如果我们手动运行这个TTman.sh
的退出状态是112,实际上是通过(不是标准的返回代码)。
答案 0 :(得分:1)
您没有获得远程命令的远程代码,实际上您从运行中获得的RC 13很可能来自机器人框架 - 在运行完成时,其RC是失败案例的数量。即当你观察到这种情况时,应该有13例失败。
要获取命令的返回码,需要对案例进行一些更改;这是半最后一行的样子,下面有解释:
${rc}= Execute Command your_command_from_the_question &>/dev/null; echo $?
首先,命令的所有输出(stdout& stderr)被重定向到/ dev / null - 不返回它。然后打印特殊的var $?
- 它保存最后执行的命令的RC(并且在大多数* sh变体中都可用,比如bash)。
最后,该值存储在${rc}
robotframework变量中,您可以根据需要对其进行任何检查。
这种方法有一个缺点 - 由于隐藏了stderr,您将无法看到运行命令时出现的任何错误。但如果不是,则它们将与RC交错,这将需要进一步处理{rc}
var,以获得所需的值。如果需要(发生故障时的stderr输出),请相应更改。
P.S。不要在问题中添加源的屏幕截图,它比文本版本更不可用。