簡體   English   中英

使用bash腳本遍歷目錄時出現分段錯誤

[英]Segmentation fault when looping through directories with bash script

我知道這通常與遞歸有關,除非我很確定自己沒有這樣做。 在循環的每次循環中,它都會給出指向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) 

我不知道這是什么問題,因為如果在bash腳本之外運行,“ cppapplication.exe”在這些文件上可以正常工作。

您的$filename可能為空或與預期不符。 我確定segfault是cppapplication.exe崩潰了(為什么不告訴我們第26行是什么?)要對此進行測試,請嘗試

./cppapplication.exe "" 0 1 1 0

看看它是否存在段錯誤。 如果我不得不猜測:該應用程序嘗試打開文件,但不檢查返回值,並使用NULL指針指示士兵是否繼續前進。

順便說一句,腳本中除第一個分號外的所有字符都沒有用。 外殼不是C :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM