0
私はforループを書き直そうとしています(それはうまくいきます)、並列で実行していますが、何か問題があります。ここに私のループfor-loopを "parallel"で使用するように書き直し
function no_sam {
filename=$(basename "$file")
extension="${file##*.}"
if [ $extension = "sam" ];
then
filename="${filename%.*}"
feat_out=$filename.out
htseq-count -f $types -r "$pos" -m "$mode" -i "$attribute" -s "$strand" -t "$feature" -a "$qual" "$file" "$input_gff" > "$feat_out"
grep -v "_" "$feat_out" > temp && mv temp "$feat_out"
mv "$feat_out" "$counts_folder"
elif [ $extension = "bam" ];
then
filename="${filename%.*}"
feat_out=$filename.out
htseq-count -f $types -r "$pos" -m "$mode" -i "$attribute" -s "$strand" -t "$feature" -a "$qual" "$file" "$input_gff" > "$feat_out"
grep -v "_" "$feat_out" > temp && mv temp "$feat_out"
mv "$feat_out" "$counts_folder"
fi
}
for file in "${multi[@]}"; do
no_sam
done
ため、私はGNU平行なループのために交換したときに、私は取得していますエラーです
"${multi[@]}" no_sam | parallel
testfile.sam: command not found
あなたのスクリプトをshellcheck.netと 'bash -x'で実行してください。 – codeforester
私はすでにしました。それは私がどのように "並列"ソフトウェアを実行しているかにかかわる問題です。 – upendra
shellcheckが報告した懸念事項を修正しましたか? – codeforester