我有一个 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 文件都在同一个文件夹中,我使用的是全新安装的 Ubuntu 12.04.3,使用 gedit 作为文本编辑器。
我尝试在 IF 条件中回显变量 ID 和内部,但它在测试相同值时并没有表现出应有的方式。有人可以指出我正确的方向。谢谢
这是代码:
#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