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

AWS Linux下保活flaky Python脚本遇bash语法错误排查

问题根因

你的脚本报syntax error: unexpected end of file是语法和操作错误共同导致的:

  1. Bash的while循环语法和Python不同,你误用了Python的冒号结尾写法,且漏写了循环必需的do起始标记和done闭合标记,解析器读到文件末尾都没找到循环结束标识,直接抛出语法错误。
  2. 权限设置命令写反了:chmod -x runProgram.sh是移除脚本的可执行权限,要授予可执行权限需要用chmod +x runProgram.sh(不过你直接用bash runProgram.sh调用时不需要可执行权限,这个错误不影响当前运行,但后续直接执行脚本会报权限不足)。
  3. 直接写script.py不会自动调用Python解释器,除非你给Python脚本加了可执行权限且开头写了正确的Python shebang,否则会报命令不存在错误。
修复后的保活脚本

把runProgram.sh的内容替换为以下代码即可:

#!/usr/bin/env bash
while true
do
    # 环境默认Python版本为3就用python3,是Python2就替换为python
    python3 ./script.py
    sleep 1
done
运行说明
  • 如果你要直接通过./runProgram.sh方式启动,先执行chmod +x runProgram.sh授予可执行权限,再运行即可。
  • 如果你用bash runProgram.sh方式启动,不需要额外设置权限,直接执行命令就能跑。
  • 如果需要后台常驻运行、不占用当前终端、退出SSH也不停止,可以用以下命令启动,脚本运行日志会存在同目录的run.log文件里方便排查问题:
    nohup bash runProgram.sh > run.log 2>&1 &

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:18:20