这似乎很明显,但是经过大量搜索,无法找到正确的搜索术语来获得答案。搜索"连接到Python内核"之类的东西。仅提出有关Jupyter和Ipython的页面和页面。
bash
我发现了使用协调的内容。
我理想的是:
create_named_process proc1
create_named_process proc2
然后SomeHow将命令发送到 proc1 并获取输出并将命令发送到 proc2 并获取输出。然后再用更多命令进行操作。
python
我确实找到了Python subprocess
和Bash子壳。但是不确定如何使这些人在后台和与他们联系。例如,我可以做
process = subprocess.Popen(['your_background_command'])
stdoutdata, stderrdata = process.communicate()
但是我认为,如果我杀死了该过程,我就开始了子过程,那么子过程将会死亡。(一位评论者说,使用Shell=True
会导致该过程保持生命,但不确定我将如何访问它。他们删除了评论(。
另外,如何将更多命令传递给该过程?文档中没有什么。
note 本文包含编辑。
我在搜索中不了解您的内核,但是您似乎缺少有关Bash Stdio/STDERRing的一些基础知识。
一个过程具有(常态(3标准IO流:
- stdin(标准输入(
- Stdout(标准输出(
- stderr(标准错误(
您可以用管道(|
(或文件(使用<
,>
,<<
或>>
(重定向所有这些IO流。例如:
ls -l | grep "r-x" | sed 's/^.*:...//' > 5_files.list
您可以使用FIFO,而不是普通文件:
mkfifo fifootje
tail -f fifootje | grep --line-buffered "r-x"
ls -l > fifootje
或以您的命令想法:
#!/bin/bash
mkfifo fifootje
while read line ; do
case "$line" in
(a) ls /tmp ;;
(b) ls /var ;;
(*) echo 'only a or b please' ;;
esac
done
,然后回声a
或b
(每行1(进入FIFO。
这有帮助吗?