在iPython中运行Bash脚本

时间:2017-02-06 05:24:04

标签: bash shell ipython

我写了一个bash脚本run.sh,它有一个带有多个选项的python命令 -

python train.py --lr 0.01 \
            --momentum 0.5 \
            --num_hidden 3 \
            --sizes 100,100,100 \
            --activation sigmoid \
            --loss sq \
            --opt adam \
            --batch_size 20 \
            --anneal true

我尝试在iPython中运行此命令 -

!./run.sh

然而,在iPython中,我无法访问python脚本train.py的变量。有没有办法在iPython中运行bash脚本,以便我可以访问变量?我不想每次都从bash脚本中复制粘贴上面的命令。

我目前在macOS Sierra上使用iPython 5.1.0。

1 个答案:

答案 0 :(得分:1)

运行脚本train.py的python进程和您在ipython命令行中使用的python进程是两个独立的进程。有意义的是,一个人不知道另一个的变量。可能有一些奇特的方式来连接这两个,但我怀疑你描述问题的方式,这是不值得的工作。

以下是获取访问权限的简便方法:您可以使用python train.py替换脚本中的python -i train.py。这样,您将在完成后运行脚本的过程中进入交互模式,并且可以访问主级别定义的任何内容。您可以在脚本中插入对pdb.set_trace()的调用,以便在任意点停止。