bashスクリプトの新機能です。私は、行ごとにテーブルを含むファイルを読みたい。各行で、変数に値を代入したいと思います。whileループエラー:予期しないトークン `done 'の近くで構文エラーが発生しました
#!/bin/bash
while IFS= read -r line; do
echo $a $b $c $d
#if statements…
done < test.txt
私はこのエラーを取得する:これは私のコードのフォーマット、基本的には「whileループエラー:「予期しないトークンの近くに構文エラー `済」私のコードが間違っているものを
任意のアイデア?私は同じエラーに関する他のいくつかの質問を見てみましたが、私は自分のコードを修正することができませんでした。ご協力ありがとうございました!
編集:これはコード全体です。それはそれに他のエラーがあるかもしれません(私は本当に初心者です)が、私はそれが役立つことを願っています。
#!/bin/bash
experiment_database="/home/gperron/datasets/ENCODE_tables/final_tables/test_experiment_database.txt"
file_database="/home/gperron/datasets/ENCODE_tables/final_tables/test_file_database.txt"
EXPERIMENT=`cat $experiment_database | head -n $PBS_ARRAYID | tail -n 1 | cut -f1`
echo "EXPERIMENT #$PBS_ARRAYID: $EXPERIMENT"
while IFS= read -r line; do
echo $file_ID $experiment $target $biological_replicate $technical_replicate $read_number $url $fastq_file $genome
if [ "$experiment" == "$EXPERIMENT" ]; then
if [ $biological_replicate == 1 ]; then
if [ $technical_replicate == 1 ]; then
if [ $read_number == 1 ]; then
ID_111= $file_ID
fastq_111= $fastq_file
url_111= $url
echo "FASTQ file 111 ID: $ID_111"
echo "FASTQ file 111: $fastq_111"
echo "FASTQ file 111 url: $url_111"
elif [ $read_number == 2 ]; then
ID_112= $file_ID
fastq_112= $fastq_file
url_112= $url
echo "FASTQ file 112 ID: $ID_112"
echo "FASTQ file 112: $fastq_112"
echo "FASTQ file 112 url: $url_112"
fi
elif [ $technical_replicate == 2 ]; then
if [ $read_number == 1 ]; then
ID_121= $file_ID
fastq_121= $fastq_file
url_121= $url
echo "FASTQ file 121 ID: $ID_121"
echo "FASTQ file 121: $fastq_121"
echo "FASTQ file 121 url: $url_121"
elif [ $read_number == 2 ]; then
ID_122= $file_ID
fastq_122= $fastq_file
url_122= $url
echo "FASTQ file 122 ID: $ID_122"
echo "FASTQ file 122: $fastq_122"
echo "FASTQ file 122 url: $url_122"
fi
elif [ $biological_replicate == 2 ]; then
if [ $technical_replicate == 1 ]; then
if [ $read_number == 1 ]; then
ID_211= $file_ID
fastq_211= $fastq_file
url_211= $url
echo "FASTQ file 211 ID: $ID_211"
echo "FASTQ file 211: $fastq_211"
echo "FASTQ file 211 url: $url_211"
elif [ $read_number == 2 ]; then
ID_212= $file_ID
fastq_212= $fastq_file
url_212= $url
echo "FASTQ file 212 ID: $ID_212"
echo "FASTQ file 212: $fastq_212"
echo "FASTQ file 212 url: $url_212"
fi
elif [ $technical_replicate == 2 ]; then
if [ $read_number == 1 ]; then
ID_221= $file_ID
fastq_221= $fastq_file
url_221= $url
echo "FASTQ file 221 ID: $ID_221"
echo "FASTQ file 221: $fastq_221"
echo "FASTQ file 221 url: $url_221"
elif [ $read_number == 2 ]; then
ID_222= $file_ID
fastq_222= $fastq_file
url_222= $url
echo "FASTQ file 222 ID: $ID_222"
echo "FASTQ file 222: $fastq_222"
echo "FASTQ file 222 url: $url_222"
fi
fi
fi
fi
done < test_file_database.txt
何かを明確にするかどうかお知らせください。
ポストループの肉。おそらく、いくつかの閉じられていない構造体やアンバランスな括弧などがあります。 –
投稿したコードにエラーはありません。問題を再現し、* exact *コードをコピーしてあなたの質問に貼り付ける最小限の例を作成してください。 (テストケースを絞り込んで問題を解決する可能性があります;その場合は、質問を削除するか、回答を投稿することができます。他人に役立つかどうかによって異なります) –
投稿したコードは、 -is –