[问题]关于declare的问题

为当前最终发行版之前的所有版本提供支持
回复
来诺
帖子: 494
注册时间: 2007-01-13 1:02
送出感谢: 0
接收感谢: 0
联系:

[问题]关于declare的问题

#1

帖子 来诺 » 2007-03-07 22:06

#!/bin/bash
#This program is used to "declare" variables
#Winfield 07/03/2007
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"

winfield@winfield-desktop:~$ sh test03-declare.sh
test03-declare.sh: 5: declare: not found
Your result is 2*3+5*13-32+25
Your result is
为什么会这样啊?
test03-declare.sh: 5: declare: not found这一句是什么意思?
来诺
帖子: 494
注册时间: 2007-01-13 1:02
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 来诺 » 2007-03-08 18:02

有人帮帮我吗?可以发邮件给我:winfield301 AT gmail.com
上次由 来诺 在 2010-01-03 13:51,总共编辑 1 次。
xiechy
帖子: 1074
注册时间: 2006-01-18 15:01
送出感谢: 0
接收感谢: 1 次

#3

帖子 xiechy » 2007-03-08 21:27

apt-get install libgcj7-dev
来诺
帖子: 494
注册时间: 2007-01-13 1:02
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 来诺 » 2007-03-08 22:32

谢谢xiechy,但是我按你说的做了,还是不行。。
xiechy
帖子: 1074
注册时间: 2006-01-18 15:01
送出感谢: 0
接收感谢: 1 次

#5

帖子 xiechy » 2007-03-09 15:00

首先抱歉!我写错了。我当时是直接以为是一个命令,然后dpkg-query -S declare 就告诉你了,后来检查,发现其实搜出来的是一个头文件含有这个字串。

再次致歉~

declare是bash的一个关键字,man bash就可以找到它的语法的。
在我的机子上(feisty)是可以正常执行的。没有你的错误。你最好看看/bin/bash是不是一个真正的bash,还是ln出来的其他的。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#6

帖子 eexpress » 2007-03-09 15:18

$● bash test.bash
Your result is 2*3+5*13-32+25
Your result is 64
● 鸣学
daxigua
帖子: 1
注册时间: 2008-08-20 11:13
送出感谢: 0
接收感谢: 0

#7

帖子 daxigua » 2008-08-20 11:15

ubuntu在shell的执行上用户root和普通用户是不一样的。使用vi /etc/passwd我们就可以看到在用户的最后一行也就是定义shell执行位置的地方root的位置是/bin/bash 而其他的用户都是/bin/sh   
所以在ubuntu中root执行scipt的时候应该是bash test.sh(注意在linux中是没有文件后缀名的加上只是为了识别特殊的文件。文件能不能执行主要是看文件属性里面的x是否北打开)而不是sh test.sh。
头像
sinyadvan
帖子: 724
注册时间: 2008-04-02 15:36
来自: O_O
送出感谢: 0
接收感谢: 0

#8

帖子 sinyadvan » 2008-08-20 11:30

$#@!%^&
附件
Screenshot.jpg
^o^ && O_O && ^_^
One World|One Dream|One Piece
愛 ^_^ 這個 美麗的世界O_O

本公司专治各种不服、不爽、谩骂、挑衅。
zhengyj
帖子: 5
注册时间: 2008-11-05 11:13
送出感谢: 0
接收感谢: 0

Re:

#9

帖子 zhengyj » 2008-11-05 11:17

daxigua 写了:ubuntu在shell的执行上用户root和普通用户是不一样的。使用vi /etc/passwd我们就可以看到在用户的最后一行也就是定义shell执行位置的地方root的位置是/bin/bash 而其他的用户都是/bin/sh   
所以在ubuntu中root执行scipt的时候应该是bash test.sh(注意在linux中是没有文件后缀名的加上只是为了识别特殊的文件。文件能不能执行主要是看文件属性里面的x是否北打开)而不是sh test.sh。
确实如daxigua所说,如果要修改到使用户也可以 用 sh test.sh ,应该如何修改?
gbluo
帖子: 33
注册时间: 2008-11-17 14:13
送出感谢: 0
接收感谢: 0

Re:

#10

帖子 gbluo » 2008-12-05 13:58

eexpress 写了:$● bash test.bash
Your result is 2*3+5*13-32+25
Your result is 64
Thank you,I have the same question,and I solve it through you eexpress's answer.
头像
timebomb
帖子: 153
注册时间: 2008-04-09 11:01
送出感谢: 0
接收感谢: 0

Re: [问题]关于declare的问题

#11

帖子 timebomb » 2009-02-26 22:06

非常感谢,解决了我一大难题, :em11
qinruanqi
帖子: 9
注册时间: 2009-01-30 14:09
送出感谢: 0
接收感谢: 0

Re: [问题]关于declare的问题

#12

帖子 qinruanqi » 2009-06-06 8:40

感谢,终于知道怎么弄了。 :em01
回复

回到 “老旧版本支持”