You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS EC2实例中通过Python代码运行Shell脚本及权限配置

从Python脚本调用Shell脚本的实现方法及权限设置

一、在main.py中调用somescript.sh的实现

你可以利用Python的subprocess模块完成Shell脚本调用,以下是几种常用实现方式:

方式1:直接执行脚本(推荐,需脚本有执行权限)

修改main.py,添加subprocess.run()调用:

import os
import subprocess
import venv

venv.create('a_venv', with_pip=True) 

# 调用somescript.sh,check=True会在脚本执行失败时抛出异常
subprocess.run(['./somescript.sh'], check=True)

方式2:通过bash解释器执行(无需脚本执行权限)

如果暂时不想设置脚本权限,也可以指定bash解释器来运行脚本:

import os
import subprocess
import venv

venv.create('a_venv', with_pip=True) 

subprocess.run(['bash', './somescript.sh'], check=True)

额外:让脚本使用创建的虚拟环境

如果你的Shell脚本需要用到a_venv虚拟环境中的依赖,可以先激活环境再执行脚本(仅适用于Linux/macOS):

import os
import subprocess
import venv

venv.create('a_venv', with_pip=True) 

activate_path = os.path.join('a_venv', 'bin', 'activate')
# 使用shell=True实现多命令串联执行
subprocess.run(f'source {activate_path} && ./somescript.sh', shell=True, check=True)

二、somescript.sh的权限设置

为了能直接执行脚本(对应方式1),需要给脚本添加可执行权限,在终端执行以下命令:

chmod +x somescript.sh

该命令会赋予脚本所有者、所属组及其他用户执行权限。如果仅想让所有者拥有执行权限,可使用chmod u+x somescript.sh。

另外,脚本开头的#!/bin/bash(shebang行)必须保留,它指定了脚本的解释器为bash,确保系统能正确识别并执行脚本。

内容的提问来源于stack exchange,提问作者arve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 21:52:53