簡體   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