[英]Shell script called using Python subprocess call() takes no effect
我在使用subprocess.call()执行shell脚本时遇到问题,并且在Python控制台中进行了此测试,以试图找出问题所在:
import subprocess
subprocess.call(["touch", "/tmp/out.txt"])
这可以在tmp文件夹中创建文件。 但是,这两个调用都不起作用:
subprocess.call(["sh", "/tmp/test.sh"])
subprocess.call(["/tmp/test.sh"])
/tmp/test.sh:
#!/bin/bash
touch out.txt
exit 0
基本上,从subprocess.call()执行脚本不会产生任何输出。 我授予了文件和文件夹的完全权限,以避免出现任何问题。 似乎问题可能与执行脚本的用户有关,但与第一种情况(正在运行)的用户相同。 知道可能是什么问题吗?
顺便说一句,我正在使用Ubuntu 12.04 LTS,Python 2.7.4。
提前致谢。
您的脚本已正确执行。 问题出在您的bash
脚本上。
您必须了解此脚本继承了父脚本的工作目录。 因此,将在运行使用subprocess.call
的python脚本的目录中创建out.txt
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.