[讨论]这段shell script结果为何是这样的

sh/bash/dash/ksh/zsh等Shell脚本
回复
baoziji
帖子: 28
注册时间: 2007-10-22 0:12
送出感谢: 0
接收感谢: 0

[讨论]这段shell script结果为何是这样的

#1

帖子 baoziji » 2007-11-14 12:07

#!/bin/bash
#this
number1=2*3+5*13-32+25
declare -i number2=2*3+5*13-32+25
echo "Your result is==>$number1"
echo "Your result is==>$number2"
~




hg@jk-laptop:~/test$ sh test03-declare.sh
test03-declare.sh: 4: declare: not found
Your result is==>2*3+5*13-32+25
Your result is==>
###应该是64呀,为什么什么都没有了呢
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2007-11-14 12:31

☎ ./tmp
Your result is==>2*3+5*13-32+25
Your result is==>64

你别sh xxxx了。缺省的sh,变dash了。都指定了#!/bin/bash的啊。
● 鸣学
头像
TheChampionHeart
帖子: 98
注册时间: 2007-10-06 20:49
来自: 中国,天津(Tianjin China)
送出感谢: 0
接收感谢: 0
联系:

Re: [讨论]这段shell script结果为何是这样的

#3

帖子 TheChampionHeart » 2007-11-21 23:00

baoziji 写了:#!/bin/bash
#this
number1=2*3+5*13-32+25
declare -i number2=2*3+5*13-32+25
echo "Your result is==>$number1"
echo "Your result is==>$number2"
~




hg@jk-laptop:~/test$ sh test03-declare.sh
test03-declare.sh: 4: declare: not found
Your result is==>2*3+5*13-32+25
Your result is==>
###应该是64呀,为什么什么都没有了呢

应该是赋值语句的问题:
number=2×3+5×13-32+25 不行吧,它相当于吧字符串赋给了number了,用 $(expr)
第二个同理
看看我说的对不对?
yuffey
帖子: 193
注册时间: 2007-09-06 16:24
来自: 中国上海
送出感谢: 0
接收感谢: 0

#4

帖子 yuffey » 2007-11-24 13:14

OK
liiiping
帖子: 1
注册时间: 2007-03-05 17:14
送出感谢: 0
接收感谢: 0

#5

帖子 liiiping » 2007-12-07 17:05

我试了一下,用
bash test03-declare.sh
就没问题。
回复

回到 “Shell脚本”