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

编写Shell包装脚本运行Python文件时遇语法错误求助

问题解决办法

你的错误根源很明确:脚本开头的#!/usr/bin/env python3指定了用Python解释器执行这个脚本,但第二行是Shell命令,Python会把它当成代码解析,自然报语法错误。

下面给你两种可行的解决方式:

方式一:改成Shell包装脚本(适配WSL/Git Bash等类Unix终端)

把脚本的shebang替换为Shell解释器的路径,让系统用Shell来执行命令:

#!/bin/bash
python3 -u index.py "$@"

保存后,确保脚本权限正确(你已经执行过chmod +x dag,这一步没问题),直接运行./dag即可。

方式二:用Python脚本实现包装(跨终端适配)

如果想保留用Python解释器执行包装脚本,就用Python的subprocess模块来调用目标文件,脚本内容改成:

#!/usr/bin/env python3
import subprocess
import sys

# 调用index.py并传递所有命令行参数
subprocess.run([sys.executable, '-u', 'index.py'] + sys.argv[1:])

同样赋予执行权限后,直接运行./dag或者python3 dag都可以。

额外:Windows原生终端(cmd/PowerShell)适配

如果是在Windows原生终端使用,没必要写Shell/Python包装,直接写批处理文件更简单:
新建dag.bat文件,内容如下:

@echo off
python -u index.py %*

直接双击或者在终端输入dag就能运行,不需要设置执行权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:34:53