私はこれが通常再帰に関係していることを理解していますが、私はこれを行っていないことをかなり確信しています。ループを一周するたびに、forループの行を指すセグメンテーションエラーが発生します。
for file in $DATAFOLDER*; do
echo $file;
filename=$(basename $file);
echo $filename;
echo "$DESTFOLDER$SUBFOLDER${filename%%.*}"
pwd
# move data to cppapplication folder
cp -R "$file" "$DESTFOLDER";
sleep 1
# create subdirectory
mkdir "$SUBFOLDER";
# create new folder for extracted data
mkdir "$DESTFOLDER$SUBFOLDER${filename%%.*}";
# copy MassLynx header file into new folder (get the description info)
cp "$file/_HEADER.TXT" "$DESTFOLDER$SUBFOLDER${filename%%.*}";
# run the cppapplication
# <program> <project file> <MassSpectrum> <Mobilogram> <bins in Da> <extract m/z ranges>
./cppapplication.exe "$filename" 0 1 1 0 ;
# fix last character comma bug
sed -i '$ s/,$//g' MassMobility.txt
# move the created files into the new folder
mv Mobilogram.txt "$DESTFOLDER$SUBFOLDER${filename%%.*}";
mv MassMobility.txt "$DESTFOLDER$SUBFOLDER${filename%%.*}";
mv MassMobilityXaxis.txt "$DESTFOLDER$SUBFOLDER${filename%%.*}";
mv MassMobilityYaxis.txt "$DESTFOLDER$SUBFOLDER${filename%%.*}";
# get driftscope quicklook image
sleep 3
python "C:\Users\ganesh\Dropbox\PhD\03_Amphitrite\CppApplication\quicklook_driftscope.py" "$DESTFOLDERWINDOWS$SUBFOLDERWINDOWS" "${filename%%.*}" "$DESTFOLDERWINDOWS$SUBFOLDERWINDOWS${filename%%.*}";
# remove MassLynx Project
rm -r "$filename";
done
ファイルのコピーを除いて、ループはループされている元のフォルダーとは何の関係もないと思います。
これはエラーです:
./extract_all_projects.sh: line 26: 7500 Segmentation fault (core dumped)
「cppapplication.exe」はbashスクリプトの外部で実行された場合、これらのファイルで正常に機能するため、問題が何であるかわかりません。