我正在尝试编写一个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
和-
之间的空间的情况下工作没有什么不同。
[
后面需要加空格(]
前面也需要加一(。