Вы можете отправить результат ваших функций на стандартный вывод, попросив интерпретатор Python напечатать результат:
python -c 'import test; print test.get_foo()'
Опция -c
просто просит Python выполнить некоторые команды Python.
Чтобы сохранить результат в переменной, вы можете сделать:
RESULT_FOO=`python -c 'import test; print test.get_foo()'`
или, что эквивалентно
RESULT=$(python -c 'import test; print test.get_foo()')
, поскольку обратные пометки и $(…)
оценивают команду и заменяют ее выводом.
PS : для получения результата каждой функции каждый раз требуется анализ файла конфигурации при таком подходе. Это можно оптимизировать, возвращая все результаты за один раз, например:
ALL_RESULTS=$(python -c 'import test; print test.get_foo(), test.get_bar()')
Затем результаты можно разделить и поместить в разные переменные с помощью
RESULT_BAR=$(echo $ALL_RESULTS | cut -d' ' -f2)
, который берет второй результат и помещает его, например, в RESULT_BAR
(и аналогично: -fn
для результата #n).
PPS : Как упомянул Пабло Маурин, вероятно, было бы проще сделать все в одном интерпретаторе (Python, но, возможно, также и оболочка), если это возможно, вместо вычисления переменных в одной программе и использования их в другом.