新手求助,变量前面加$问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
windrider
帖子: 6
注册时间: 2011-12-04 21:29

新手求助,变量前面加$问题

#1

帖子 windrider » 2011-12-16 10:13

# sh14.sh
# calculate the sum value of 1:n
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Please input the upper bound n: " n
i=1
sum=0
while [ $i != $n ]
do
sum=$ ( ($sum+$i) )
i=$ ( ($i+1) )
done
echo "The sum from 1 t o $n is $sum."

为什么while循环里,sum的求值是错的?
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 新手求助,变量前面加$问题

#2

帖子 tenzu » 2011-12-16 10:27

-ne 才对
windrider
帖子: 6
注册时间: 2011-12-04 21:29

Re: 新手求助,变量前面加$问题

#3

帖子 windrider » 2011-12-16 10:35

-ne?不懂...
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 新手求助,变量前面加$问题

#4

帖子 枫叶饭团 » 2011-12-16 10:37

!=换成-ne
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 新手求助,变量前面加$问题

#5

帖子 枫叶饭团 » 2011-12-16 10:40

!=换成-ne
$(($i+1))可以换成((i++))
windrider
帖子: 6
注册时间: 2011-12-04 21:29

Re: 新手求助,变量前面加$问题

#6

帖子 windrider » 2011-12-16 10:48

谢谢楼上的两位了,这句
sum=$ ( ($sum+$i) )
错在哪里啊?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 新手求助,变量前面加$问题

#7

帖子 枫叶饭团 » 2011-12-16 15:02

手机居然不支持i++,郁闷。$var $与var之间不能加空格
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 新手求助,变量前面加$问题

#8

帖子 枫叶饭团 » 2011-12-16 15:14

这个脚本还有个问题,加到n的时候while循环终止,最后一个n没有加上去。比如输入9,在我手机上得到的却是36,正确应该是45.把不等换成大于应该就行了
回复