首页 > 解决方案 > 无法在 Python 脚本中从 `if __name__ == "__main__"` 返回值?

问题描述

我正在尝试在调用 Python 脚本的 bash 脚本中收集 Python 脚本的输出,如下所示:

#!/bin/bash

outputString=$(./test.py 2>&1)
echo $outputString

但看起来我无法从街区返回if __name__ == "__main__"

#!/usr/bin/env python

import sys

def my_method():
    return 'somethng'

if __name__ == "__main__":
    value = my_method()
    return value

运行test.sh报以下错误:

File "./test.py", line 11 return value SyntaxError: 'return' outside function

我究竟做错了什么?我不能从里面回来if __name__ == "__main__"

标签: pythonbash

解决方案


您可以像这样从python(或任何其他程序)获取退出值

#!/bin/bash

./test.py 2>&1
echo $?

如果出现错误,您可以使用不同于 0 的值退出

#!/usr/bin/env python

import sys

def my_method():
    return 'somethng'

if __name__ == "__main__":
    print(my_method())
    sys.exit(0)

推荐阅读