То, что я хотел бы сделать, это что-то вроде
$echo $PATH | python --remain-interactive "x = raw_input().split(':')"
>>>
>>> print x
['/usr/local/bin', '/usr/bin', '/bin']
Полагаю, решение ipython будет лучшим. Если это недостижимо, каким было бы ваше решение для ситуации, когда я хочу обрабатывать вывод различных других команд? Я использовал подпроцесс раньше, чтобы сделать это, когда был в отчаянии, но он не идеален.
ОБНОВЛЕНИЕ: Так что это приближается к конечному результату:
echo $PATH > /tmp/stdout.txt; ipython -i -c 'stdout = open("/tmp/stdout.txt").read()'
Теперь, как мы можем согнуть это в форму
echo $PATH | pyout
, где pyout
- «волшебное решение всех моих проблем». Это может быть сценарий оболочки, который записывает вывод по конвейеру, а затем запускает ipython. Все, что сделано, терпит неудачу по тем же причинам, по словам БП.