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

如何在运行bash脚本时编辑Python脚本,确保后续执行用旧代码

解决方案

方案1:临时复制脚本到独立目录(最直接)

在bash脚本里先把要执行的Python脚本复制到临时目录,之后执行临时目录里的版本。这样你编辑原文件时,临时目录里的副本完全不受影响。

修改你的script.sh为:

# 创建临时目录,自动生成唯一名称
TEMP_DIR=$(mktemp -d)
# 复制当前版本的train1.py和train2.py到临时目录
cp train1.py train2.py "$TEMP_DIR/"
# 执行临时目录中的脚本
python "$TEMP_DIR/train1.py"
python "$TEMP_DIR/train2.py"
# 执行完成后清理临时目录(可选,若需要保留日志可注释此行)
rm -rf "$TEMP_DIR"

方案2:利用Git归档当前版本(适合Git管理的项目)

如果你的代码已经用Git管理,可以直接归档当前版本的代码到临时目录,确保执行的是脚本启动时的代码状态。

修改script.sh为:

# 创建临时目录
TEMP_DIR=$(mktemp -d)
# 将当前Git仓库的已追踪文件归档到临时目录(会忽略未提交的新文件)
git archive HEAD | tar -x -C "$TEMP_DIR"
# 切换到临时目录执行脚本
cd "$TEMP_DIR"
python train1.py
python train2.py
# 切回原目录并清理临时目录
cd -
rm -rf "$TEMP_DIR"

如果需要包含未提交的修改,可以改用git stash create生成临时归档:

TEMP_DIR=$(mktemp -d)
# 生成包含所有未提交修改的临时归档
STASH_ID=$(git stash create)
git archive "$STASH_ID" | tar -x -C "$TEMP_DIR"
cd "$TEMP_DIR"
python train1.py
python train2.py
cd -
rm -rf "$TEMP_DIR"

注意事项

  • 临时目录由mktemp -d生成,默认会放在系统临时分区(一般是/tmp),如果你的脚本需要处理大文件或长时间运行,确保临时分区有足够空间。
  • 若需要保留临时文件用于调试,可以注释掉rm -rf "$TEMP_DIR"这一行,执行完后手动清理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:20:31