Один из подходов, который вы могли бы использовать, это использовать json в качестве протокола между родительскими и дочерними сценариями, поскольку поддержка json доступна на многих языках и довольно выразительна. Вы также можете использовать канал для отправки произвольного объема данных в дочерний процесс, предполагая, что ваши требования позволяют вам читать дочерние сценарии из стандартного ввода. Например, родитель может сделать что-то вроде (показан Python 2.6):
#!/usr/bin/env python
import json
import subprocess
data_for_child = {
'text' : 'Twas brillig...',
'flag1' : False,
'flag2' : True
}
child = subprocess.Popen(["./childscript"], stdin=subprocess.PIPE)
json.dump(data_for_child, child.stdin)
А вот эскиз детского сценария:
#!/usr/bin/env python
# Imagine this were written in a different language.
import json
import sys
d = json.load(sys.stdin)
print d
В этом тривиальном примере вывод:
$ ./foo12.py
{u'text': u'Twas brillig...', u'flag2': True, u'flag1': False}