#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.