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

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

[讨论]这段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
来自: 长沙

#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)

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
来自: 中国上海

#4

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

OK
liiiping
帖子: 1
注册时间: 2007-03-05 17:14

#5

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

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