Linux 是否生成特定的非零返回代码?
我正在编写一些python代码,这些代码调用各种linux工具(如ssh)以实现自动化。现在我正在研究“返回代码”处理 因此:我正在寻找一种简单的方法来运行某个命令,该命令给我一个特定的非零返回代码;差不多Linux 是否生成特定的非零返回代码?,linux,bash,Linux,Bash,我正在编写一些python代码,这些代码调用各种linux工具(如ssh)以实现自动化。现在我正在研究“返回代码”处理 因此:我正在寻找一种简单的方法来运行某个命令,该命令给我一个特定的非零返回代码;差不多 echo "this is a testcommand, that should return with rc=5" 比如说。当然,上面的结果是rc=0 我知道我可以调用false,但这将始终返回rc=1。我正在寻找的东西,给我一个钢筋混凝土,我可以控制 编辑:第一个答案建议退出;但问题是
echo "this is a testcommand, that should return with rc=5"
比如说。当然,上面的结果是rc=0
我知道我可以调用false
,但这将始终返回rc=1。我正在寻找的东西,给我一个钢筋混凝土,我可以控制
编辑:第一个答案建议退出;但问题是:exit是一个bash函数。因此,当我试图在python脚本中运行它时,我得到“没有这样的文件或目录:退出”
所以,我实际上是在寻找一种“二进制”工具,它可以提供给我这个功能(显然,人们可以编写一些简单的脚本来实现这个功能;我只是在寻找是否有类似于false的东西已经随任何Linux/Unix一起提供了)。在子shell中运行
exit
$ (exit 5) ; echo $?
5
这并不完全是您所要求的,但是可以通过exit命令实现自定义
rc
echo "this is a test command, that should return with " ;exit 5
echo $?
5
我在
.bashrc
中定义了此函数:
return_errorcode ()
{
return $1
}
所以,我可以直接使用
$ return_errorcode 5
$ echo $?
5
与
(退出5)相比;echo$?
选项,这个机制为您节省了一个子shell。当我直接在bash中执行它时,它可以很好地工作。但是我需要python为我运行的命令(比如false)。任何进一步的想法都是受欢迎的。在这种情况下,只需调用一个shell就可以让它返回值sh-c“出口5”
给出或获取一些微妙之处,在cmd_str=“bash-c‘出口5’”
中完成了任务!谢谢您将如何从Python运行该命令subprocess.Popen('exit 5',shell=True
可以工作。
$ (exit 5) ; echo $?
5