Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iPython中运行Bash脚本_Bash_Shell_Ipython - Fatal编程技术网

在iPython中运行Bash脚本

在iPython中运行Bash脚本,bash,shell,ipython,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 \

我编写了一个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。

运行脚本的python进程
train.py
和在iPython命令行上使用的python进程是两个独立的进程。一方不知道另一方的变量是有道理的。也许有一种奇特的方式可以将两者联系起来,但从你描述问题的方式来看,我怀疑这样做不值得


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

使用
%%bash启动单元格,然后您可以输入shell代码。如果你想用谷歌搜索它,这叫做
bash cell magic
。@cel:这似乎没用。您已经尝试过了。您可以尝试使用@cel建议的
%%bash
魔术,然后将脚本放入单元格中,并直接使用所需参数运行它