繁体   English   中英

使用Python子进程call()调用的Shell脚本无效

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM