gpt4 book ai didi

python - 使用Python subprocess call()调用的Shell脚本不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:55 24 4
gpt4 key购买 nike

我在使用 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

关于python - 使用Python subprocess call()调用的Shell脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22042773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com