Контролировать подоболочку Python

#python #bash #zsh #subshell

#python #bash #zsh #дочерняя оболочка

Вопрос:

Я хочу запустить интерпретатор Python как подчиненный процесс в bash или zsh . В течение этого времени я хотел бы отправлять команды процессу и видеть результат в STDOUT . Что-то вроде этого:

 $ in=/dev/shm/python_test_in
$ out=/dev/shm/python_test_out
$ touch $in $out
$ python < $in > $out
$ echo print(1 1) > $in
$ cat $out
  

К сожалению, это не работает. Я использую GNU / Linux.

Комментарии:

1. использование expect было бы правильным выбором, если это возможно.

Ответ №1:

Что вам нужно, так это канал:

 mkfifo ./in ./out
python < ./in > ./out amp;
echo "print(1 1)" > ./in
cat ./out
  

Однако, таким образом, интерпретатор python завершит работу сразу после этого выполнения, потому что он прочитал EOF в строке «echo». Я ищу способ предотвратить выход интерпретатора python из EOF.