1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| #!/bin/bash
export SUBJECTS_DIR=$PWD/freesurfer_output mkdir -p "$SUBJECTS_DIR" mkdir -p logs
> logs/failed_subjects.txt
for nii_file in T1/*/*.nii.gz; do subject_id=$(basename $(dirname "$nii_file")) log_file="logs/${subject_id}.log"
if [ -e "$SUBJECTS_DIR/$subject_id/mri/brain.mgz" ]; then echo "$subject_id 已完成,跳过" | tee -a "$log_file" continue fi
echo "开始处理 $subject_id..." | tee "$log_file" recon-all -i "$nii_file" -s "$subject_id" -all >> "$log_file" 2>&1
if [ -e "$SUBJECTS_DIR/$subject_id/mri/brain.mgz" ]; then echo "✅ $subject_id 完成" | tee -a "$log_file" else echo "❌ $subject_id 失败" | tee -a "$log_file" echo "$subject_id" >> logs/failed_subjects.txt fi done
echo "✅ 所有任务已完成,请检查 logs/failed_subjects.txt 是否有失败样本。"
|