Я пытался вызвать исходную команду в Unix из скрипта Python.Я пытался сделать это с помощью подпроцесса. Откройте передачу среды os в него.
Ниже приведена моя функция для выполнения задачи по выполнению команды:
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.
Надеюсь, я ясно.