ユーザー入力がcsvデータ内にあるかどうかを確認する目的でループしようとしているcsvファイルがあります。私は次のコードを書きましたが、これは時々機能し、他のコードは機能しません。2桁以上の数字と比較しようとすると、常に機能しなくなります。1 から 9 までの数字で問題なく動作しますが、一度入力すると 56 、または 99 または 100 と言うと、動作しなくなります。
csv データはコンマ区切りです。約 300 行ありますが、このようなものです。
1,John Doe,Calculus I,5.0
1,John Doe,Calculus II,4.3
1,John Doe,Physics II,3.5
2,Mary Poppins,Calculus I,3.7
2,Mary Poppins,Calculus II,4.7
2,Mary Poppins,Physics I,3.7
データはそのままで、ID #100 までの合計 300 行です。shファイルとcsvファイルの両方が同じフォルダーにあります。テキストエディターとしてgeditを使用して、Ubuntu 12.04.3の新規インストールを使用しています。
変数 ID と IF 条件の内部をエコーしようとしましたが、同じ値をテストするときに本来の動作をしません。誰かが私を正しい方向に向けることができますか?ありがとう
コードは次のとおりです。
#s!/bin/bash
echo "enter your user ID";
read user;
INPUT_FILE=notas.csv
while IFS="," read r- ID name asignature final;
do
if [$ID = $user]; then
userType=1;
else
userType=2;
fi
done < notas.csv