尝试将多个列读入bash时出现语法错误

时间:2015-07-14 23:20:28

标签: bash

当我从文件中读取时,我试图找到除以两个数字的余数。

输入文件如下所示:

3 
1 2
100 200
10 40

预期产出:

1
100
10

我正在运行以下代码:

read T
for ((i=1;i<=$T; i++))
do
read A
read B
echo $((A % B))
done

但是,这会产生如下错误:

line 6: 1 2: syntax error in expression (error token is "2")

为什么这不适用于手头的问题?

1 个答案:

答案 0 :(得分:1)

read A
read B

...将两个单独的行读入AB。因此,您的AB每个都是一个包含两个不同数字的字符串,因此尝试使用它们进行数学运算会失败。

语法错误是一个很大的提示:它试图使用1 2 - 您的第一行有两列 - 作为单个数字,但这不是用于数学表达式的有效数字。

如果你想读同一行的两列,那就是:

read A B