繁体   English   中英

从Python执行bash文件

[英]Execute bash file from Python

我想从Python内部执行Shell脚本文件。 我目前正在使用Envoy来执行此操作:

envoy.run('./scripts.sh')

但这使我No such file or directory错误。

我想知道,以上文件在哪个路径下执行? 如何使上面的脚本运行? 它与Python脚本位于同一目录中。

该程序在os.getcwd()报告的当前工作目录中执行。 对于命令行程序,通常是运行程序时所在的目录。 要在与python脚本相同的目录中运行命令,请使用__file__变量确定您的位置:

import os
import envoy

my_path = os.path.dirname(os.path.abspath(__file__))
envoy.run('./scripts.sh', cwd=my_path)

您收到的错误可能不一定来自python本身,但是您发布的错误也可以从bash本身返回,因此您的bash脚本也可以。

-bash: ./asdf: No such file or directory

您的shell脚本是否需要参数? 另外,您是否尝试过直接而不是通过python执行shell脚本?

我建议的另一件事是使用环境bash而不是完整路径,因为由于Linux OS设计的差异,它通常更适合于可移植性。

#!/usr/bin/env bash

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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