在shell脚本中找不到-gt运算符的错误



我正在尝试编写一个shell脚本,该脚本使用未指定数量的命令行参数(最多9个(并找到它们的和。只有当数字大于10时,才应将其相加求和。我尝试过的代码是

#!/bin/sh
sum=0
for i in $@
do
if [$i -gt 10]
then
sum=$((sum+i))
else
continue
fi
done
echo $sum

但是当我尝试执行时,我得到了以下错误

xyz@LAPTOP-1NOBF8F8:~$ vi Sum2.sh
xyz@LAPTOP-1NOBF8F8:~$ chmod +x Sum2.sh
xyz@LAPTOP-1NOBF8F8:~$ ./Sum2.sh 19 5 3
./Sum2.sh: 5: [19: not found
./Sum2.sh: 5: [5: not found
./Sum2.sh: 5: [3: not found
0

请让我知道我错过了什么。

[是一个命令,因此应该用空格(a(与周围的内容分隔,]终止符:也是如此

if [ $i -gt 10 ]

请参阅以下成绩单以获取示例:

pax> [4 -gt 3] && echo yes
[4: command not found
pax> [ 4 -gt 3 ] && echo yes
yes

(a(这与期望ls-al在没有s-之间的空间的情况下工作没有什么不同。

[后面需要加空格(]前面也需要加一(。

相关内容

  • 没有找到相关文章