使用!
運營商從IPython中執行bash命令時,從而使我獲得我所定義的bash功能我要採購我的bash環境中執行bash命令比bash
:從IPython的
In[3]: !declare -F
sh: 1: declare: not found
如何採購bash
和IPython的設置我的環境設置?
使用!
運營商從IPython中執行bash命令時,從而使我獲得我所定義的bash功能我要採購我的bash環境中執行bash命令比bash
:從IPython的
In[3]: !declare -F
sh: 1: declare: not found
如何採購bash
和IPython的設置我的環境設置?
費爾南多·佩雷斯,IPython中的創造者,suggests this:
In [1]: %%bash
. ~/.bashrc
<my_fancy_bash_function> <function_argument>
這適用於當前穩定版本(0.13.2)。他承認這有點笨拙,歡迎pull requests。 。 。
如果!
實現使用IPython.utils._process_posix.system
,那麼它將使用任何which sh
返回作爲處理外殼。這可能是Bourne shell的真正實現 - 它可能在許多Linux的Bash上處於某種兼容模式。在我的MacBook Pro看起來它是一個原始的Bash shell:
In [12]: !declare -F
In [13]: !echo $BASH
/bin/sh
In [14]: !echo $BASH_VERSION
3.2.48(1)-release
In [15]: import os
In [16]: os.environ['SHELL']
Out[16]: '/bin/zsh'
我希望它會使用$SHELL
環境變量,但它似乎沒有今天。您可能可以分支github回購,修改ProcessHandler.sh
屬性實現,以查看os.environ['SHELL']
並使用此設置,而不是調用pexpect.which('sh')
。然後發出拉請求。
很好的回覆,謝謝。在你看來,什麼是在'''實現(在你的答案中鏈接到)'產生的過程中建立環境的好方法?對/ bin/sh進行symlinking/bin/bash的快速「貧民區測試」測試併發出'! source〜/ .bashrc && declare -F'不會產生任何結果,而'! env && declare -F'正確地打印出我聲明的變量,但bash函數仍然無法訪問......有什麼想法呢? – chris 2013-04-10 14:46:08
在最近的版本中,您可以使用%% bash cell magic來執行多行bash。 – Matt 2013-04-10 18:24:40
發現了一些相當驚人的東西......你可以使用簡單的'bash'變量擴展技巧來擴展'python'聲明的變量!例如'extension =「。txt」'後面跟着'!ls *「$ extension」'打印所有'.txt'文件! – 2017-11-17 22:17:35