Em geral, a melhor maneira de testar se você pode abrir um arquivo - seja para entrada ou saída - é simplesmente tentar abri-lo.
Mais especificamente para saída, se você deseja apenas abrir um arquivo para saída se isso criar um novo arquivo, os shells POSIX oferecem a opção shell no-clobber configurável via set
, e assim você pode usar isso para testar se a saída existe antes de prosseguir.
Tentar entender seu roteiro atual é um pouco difícil, mas talvez considere:
set -C -- '/Volumes/My Passport/Documents/Projects/untitled folder 2/untitled folder 3/untitled folder 2/untitled folder/'*/*_1.fastq
[ -e "$1" ] &&
for f
do if cd -- "${f%/*}" &&
f=${f##*/} f=${f%1*}
then if command exec \
3> "$f"1_trimmed.fastq \
4> "$f"2_trimmed.fastq \
5> "$f"_trimmed_sorted_1.fastq \
6> "$f"_trimmed_sorted_2.fastq
then ~/Desktop/UTSW/Applications/bbmap/bbduk.sh -Xmx120g in1="$f"1.fastq in2="$f"2.fastq out1=/dev/fd/3 out2=/dev/fd/4 ref="${adapter}" trimq=10 &&
paste - - - - < "$f"1_trimmed.fastq | sort ... | tr >&5 ... &&
paste - - - - < "$f"2_trimmed.fastq | sort ... | tr >&6 ...
fi
fi
done