Сбор возвращаемых значений из функций python в bash

Я реализую сценарий bash, который вызовет функцию / метод скрипта python. Я хочу собрать возвращаемое значение этой функции в локальную переменную в сценарии вызова bash.

try1.sh содержит:

#!/bin/sh RETURN_VALUE=`python -c 'import try3; try3.printTry()'` echo $RETURN_VALUE 

Теперь скрипт python:

 #!/usr/bin/python def printTry(): print 'Hello World' return 'true' 

на вызывая сценарий bash:

 $./tr1.sh Hello World 

нет «истины», или в этом месте любой другой тип эхом отдавался на stdout по желанию.

Еще одна вещь, которую я хотел бы сделать, – мой автоналоженный код на Python будет содержать около 20-30 функций, возвращающих различные значения состояния моего автомата состояния программного обеспечения, и я бы назвал эти функции из сценария bash. В сценарии bash мне нужно сохранить эти возвращаемые значения в локальных переменных, которые будут использоваться дальше по логике конечного автомата, реализованной в сценарии вызова bash.

Для каждого значения я бы выполнил python -c 'import python_module; python_module.method_name ', который будет повторно перечислять определенные состояния конечного автомата снова и снова, чего я не хочу. Я хочу, чтобы весь скрипт python запускался только для вызова одной функции. Это возможно?

Какие возможные решения / предложения / идеи можно представить здесь?

Я был бы признателен за ответы.

Чтобы прояснить мое намерение, задача состоит в том, чтобы часть скрипта bash была заменена скриптом python для улучшения удобочитаемости. Сценарий bash действительно очень большой (~ 15000 строк) и, следовательно, не может быть полностью заменен одним скриптом python. Таким образом, части, которые могут быть идентифицированы для улучшения, могут быть заменены на python.

Кроме того, я подумал о замене всего скрипта bash скриптом python, как это предложил Виктор в комментарии ниже, но это было бы невозможно в моей ситуации. Следовательно, я должен был бы делить машину состояний на bash и python, где у python были бы какие-то требуемые методы, возвращающие значения состояний, необходимые для сценария bash.

С уважением, Юсуф Хусейни.

Если вам не все равно, что функция python выводит на stdout, вы можете сделать это:

 $ py_ret_val=$(python -c ' from __future__ import print_function import sys, try3 print(try3.printTry(), file=sys.stderr) ' 2>&1 1>/dev/null) $ echo $py_ret_val true