2017-10-06 28 views
2

我在網上搜索了很多,但未能找到此問題的確切解決方法。我的問題是我想在python中調用一個自定義函數。說,我已經在我的.bashrc中在Python中調用自定義bash函數

`

cpput2(){ 
    # 1 job name 
    # 2 hpss pat 
    # 3 filepath 
    bsub -N -n 1 -q hpss -W 24:00 -P CWWW0001 -J $1 hsi "cd $2; cput -R $3" 
} 

`

有什麼辦法來調用它用Python寫一個bash的功能?即使我把它放到我的bashrc中,os.system也找不到這個函數。

+0

'.bashrc'打算定製您的交互式shell,不能作爲其他程序庫。如果您需要從Python腳本運行'bsub -N ...',請明確地進行調用。 – chepner

+0

或者,創建一個腳本來運行所需的'bsub'命令,並將其放入'PATH'中的目錄中。 – chepner

回答

0

您可以通過命令選項-c在bash中執行命令。爲了使在bash提供的功能,你必須包括與點命令的源文件中的第一,如:

bash -c '. file.sh && cpput2 myjob myhpsspat mypath' 

注:由於與運營商(&&),如果包括file.sh時,纔會執行功能那是成功的。

您還可以從你的Python函數os.system

os.system("bash -c '. file.sh && cpput2 myjob myhpsspat mypath'")