for循环找不到文件夹-卡住了

时间:2019-12-16 19:45:44

标签: neuroscience

因此,我试图通过一个较大的主题目录进行代码循环,并为每个对应的主题转到同一文件夹:

/projectnb/fastfmri/nfultz/HCP/"$(basename $file)/func"

basename文件系统已经使用类似的脚本为我工作,但是由于某种原因,该脚本要求我位于func文件夹中才能运行它,这对于运行大型主题目录非常不便。以下是我一直在运行的脚本。每当我运行此程序时,除非我位于

的文件夹中,否则它将不起作用
#!/bin/bash -l 

#$ -P fastfmri

#$ -pe omp 12

#$ -N ninaStcfsl

module load fsl/5.0
module load freesurfer/6.0

export SMSFACT=8

export SUBJECT_DATA_DIR=/projectnb/fastfmri/nfultz/HCP/*

for file in $SUBJECT_DATA_DIR; do if [[ "${file}" == *"HCA"* ]]

then  echo "${file}"

export SUBJECTS_DIR=/projectnb/fastfmri/nfultz/HCP/"$(basename $file)"

export SUBJECTS_DIR=/projectnb/fastfmri/nfultz/HCP/"$(basename $file)"

export STCFSL_DIR=/projectnb/fastfmri/nfultz/HCP/"$(basename $file)"/stcfsl
#mkdir $STCFSL_DIR
echo $STCFSL_DIR

#alias subdir="cd $SUBJECTS_DIR/func"
#echo $SUBJECTS_DIR/func

#-wd $SUBJECTS_DIR/func


export CODE_DIR=/projectnb/fastfmri/nfultz/scripts
echo $CODE_DIR

#subdir 
#bash $CODE_DIR/sliceTimeCorrect.sh

for filename in $SUBJECTS_DIR/func/*.nii.gz; do
  fNameMinusPath="${filename##*/}" # crop path
  fNameMinusExt=`$FSLDIR/bin/remove_ext ${fNameMinusPath}` # crop ext
  echo $fNameMinusExt #output filename
  # /projectnb/fastfmri/nfultz/scripts/sms_slicetime_correct.sh $SMSFACT $filename $STCFSL_DIR/${fNameMinusExt}_stc.nii & #slice time correct
  $CODE_DIR/sms_slicetime_correct.sh $SMSFACT $fNameMinusPath ${fNameMinusExt}_stc.nii & #slice time correct
done
fi 
done

我一直在解决的方法是将所有func运行都移动到一个文件夹中,然后运行脚本,但这非常不方便且缓慢。我已经从几个同事那里得到了反弹,但是我们还没有找到解决方案。

0 个答案:

没有答案