我有一个文件 out.csv 我必须检查用户输入的名称是否存在于文件中(逗号分隔)。我正在使用 read 获取名称,但在检查相等性时出现错误
IFS=","
while read tname tnum
do
if [ $tname -eq $name ]; then
flag=1
break
fi
done < out.csv
echo "$ch"
答案1
您收到此错误是因为您尝试使用用于整数的相等运算符来比较字符串,-eq
、-ne
、-gt
和类似的整数函数。
要比较字符串,请使用=
比较相等或!=
比较不相等。
查看这有关比较运算符的更多信息。
if [ $tname -eq $name ]; then
应改为:
if [ "$tname" = "$name" ]; then
(还记得引用你的变量)。