从Bash脚本与IPython内核交互

时间:2014-06-07 07:39:44

标签: ipython

是否可以从Bash脚本与IPython交互式会话(或内核)进行交互?理想情况下,我想在shell脚本中执行类似的操作(我知道send子命令可能不存在,如下所示):

# do stuff in Bash ...
# start a kernel and get its Id
KERNEL=`ipython init --command="print(__KERNELID__)"`
# do something inside the kernel
ipython send --kernel=KERNELID --command="mylist = [0,1,2]"

然后,理想情况下,命令

ipython send --kernel=KERNELID --command="print(mylist)"

会输出

[0, 1, 2]

最后,我需要以某种方式破坏内核:

ipython --kernel = KERNELID --command =“sys.exit()”

可能有一种机制可以做我想做的事, 对?不幸的是,我无法找到它......

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题。因为你不得不使用python,所以你可以使用python来完成整个事情。 Python程序可以使用命令行参数,如mylist,并随心所欲地执行任何操作。

由于您要发送要评估的命令,请确保您是控制输入的命令。例如,不要让某人开始输入“import os”和“os.unlink([你的硬盘在这里])”。

对于其他选项:查看期望您的互动需求http://expect.sourceforge.net/ 或只是python版本检查pexpect模块http://pexpect.sourceforge.net/pexpect.html

相关问题