Ответ 1
Вы можете отправить результат своих функций на стандартный вывод, попросив интерпретатора 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()')
так как backticks и $(…)
оценивают команду и заменяют ее ее выходом.
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, но, возможно, и в оболочке), если это возможно, вместо вычисления переменных в одной программе и используя их в другом.