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

SLURM bash脚本跨文件夹复制文件失败,请求排查问题

问题排查:SLURM脚本跨文件夹复制失效

问题场景

需要循环处理0-4号独立文件夹,处理第i个文件夹(i>0)时,从第i-1个文件夹复制file1到当前文件夹并命名为file2,但SLURM脚本中的复制操作始终失败,原脚本如下:

#!/usr/bin/bash
#SBATCH --time=120:00:00
#SBATCH --partition=...
#SBATCH --ntasks=...
#SBATCH --job-name ...
#SBATCH --nodes=...
#SBATCH --gpus-per-node=...
#SBATCH --cpus-per-gpu=...
#SBATCH --account=...
#SBATCH --qos=...
#SBATCH --output=slurm-out
#SBATCH --error=slurm_error


cd $SLURM_SUBMIT_DIR
module load gcc/9.3.0
for((i=0;i<=4;i++))
  do
      cd $i
      if [$i -gt 0]
      then
          j=$(($i - 1))
          cp $j/file1  ./file2 

      fi
    csh README > log
    cd ../
done

错误原因及修复

  • 条件判断语法错误:[$i -gt 0] 缺少必要空格,bash中[是test命令的别名,前后必须加空格,否则会被解析为无效字符串,导致条件分支不执行。修复为:[ $i -gt 0 ]
  • 相对路径错误:进入$i文件夹后,$j/file1是相对于当前$i目录的路径,而$j文件夹在上级目录,所以需要修正路径为../$j/file1,否则会在当前$i目录下寻找不存在的$j子文件夹。

修复后的核心脚本片段

for((i=0;i<=4;i++))
  do
      cd $i
      if [ $i -gt 0 ]
      then
          j=$(($i - 1))
          cp ../$j/file1  ./file2 

      fi
    csh README > log
    cd ../
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:23:25