私はpythonスクリプトからunixのsourceコマンドを呼び出すようにしていました。私はそれをサブプロセスでやってみようとしていました.Open環境を渡してください。以下はPythonスクリプトからのソースコマンドの使用
コマンドを実行するタスクを実行するための私の関数である。
def run_command(command, tst_env):
print tst_env
try:
p = subprocess.Popen(command, env=tst_env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
stout, er = p.communicate()
print stout, er
ret = p.wait()
except Exception, e:
print "Exception: ", e
else :
if ret:
print command, "failed", ret
return
else:
print command, "succeeded", ret
return p
tst_env
ははos.environ型のオブジェクトです。
run_command(source script.sh, os.environ)
となっています。
しかし、私はスクリプト内の関数にアクセスすることができません。
場合は、このようなものです:
script.shは次のとおりです。
function task_test() {
echo "Test function called"
}
source script.sh
task_test
は、シェルスクリプトで関数を呼び出します。
しかし、シェルスクリプトの関数をpythonから呼び出すことはできません。
希望です。
あなたは、何にアクセスできないのか、どこから来ているのかを詳しく調べることができます – avasal
次の質問は[MarkDownの使い方を学んでください](http://stackoverflow.com/editing-help)ください! :) – mac
スタウトとは何を言っているのですか?そして、シェルスクリプトが正常に実行された場合、何を言いますか? 'p.wait()'は必要ありません。 - 'p.communicate()'はサブプロセスが終了するまで戻りません。 – Dave