0

私はこれが通常再帰に関係していることを理解していますが、私はこれを行っていないことをかなり確信しています。ループを一周するたびに、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スクリプトの外部で実行された場合、これらのファイルで正常に機能するため、問題が何であるかわかりません。

4

1 に答える 1

0

あなた$filenameは空であるか、期待通りではない可能性があります。セグメンテーション違反がクラッシュしていると確信してcppapplication.exeいます(26行目が何であるかを教えてくれなかったのはなぜですか?)これをテストするには、

./cppapplication.exe "" 0 1 1 0

segfaultsかどうかを確認します。私が推測しなければならなかった場合:アプリはファイルを開こうとしますが、戻り値をチェックせず、NULLポインターで兵士をオンにします。

ところで、スクリプトの最初のセミコロン以外はすべて役に立ちません。シェルはCではありません:-)

于 2012-10-03T18:04:57.253 に答える