2017-10-06 10 views
2

私はオンラインでたくさんの検索をしましたが、この問題の正確な回避策を見つけることができませんでした。私の質問は、Pythonでカスタマイズされた関数を呼びたいということです。 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" 
} 

`

をbashの機能を書かれている、と言いますか? os.systemは私のbashrcに入れてもこの機能を見つけることができません。

+0

'。あなたのPythonスクリプトから 'bsub -N ...'を実行する必要がある場合は、明示的に呼び出しを行います。 – chepner

+0

または、 'bsub'コマンドを実行するスクリプトを作成し、' PATH'にあるディレクトリに置きます。 – chepner

答えて

0

コマンドは、コマンドオプション-cでbashで実行できます。

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

注:あなたが例えば、最初のドットのコマンドを使用して、ソースファイルを含める必要があり、bashの関数を利用できるようにするにfile.shの含まれている場合により、オペレータ(&&)に、関数は実行され成功しました。

あなたはos.systemでのpythonから、あなたの関数を呼び出すことができます。

他のプログラムのためのライブラリとして機能していない、あなたのインタラクティブシェルをカスタマイズすることを目的と.bashrc`
os.system("bash -c '. file.sh && cpput2 myjob myhpsspat mypath'") 
関連する問題