当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 14 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 12:49 

注册: 2009-02-11 8:56
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
shell中想用declare -i 来声明整形,但是老是说not found,但是在bash中却是正常的


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 13:02 
头像

注册: 2007-03-02 17:36
帖子: 7259
送出感谢: 3
接收感谢: 97
那你说的在shell中可以是在哪个shell中?


_________________
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 13:19 

注册: 2009-02-11 8:56
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
就是自己写的一个脚本
#!/bin/bash
declare -i s=3*6;
echo $s;

奇怪的是,我用./文件名 是可以执行的,但是用sh 文件名,就会出现declare not found 的情况


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 13:23 
头像

注册: 2008-12-13 19:39
帖子: 13284
地址: 物华天宝人杰地灵
送出感谢: 1
接收感谢: 6
应该是路径设置问题。 :em06


_________________
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 13:25 

注册: 2008-06-09 1:27
帖子: 38
送出感谢: 0 次
接收感谢: 0 次
默认的shell是bash么...
代码:
ls -l /bin/sh


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 13:29 

注册: 2009-02-11 8:56
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
应该是的把,ls了一下
lrwxrwxrwx 1 root root 4 2009-03-21 07:55 /bin/sh -> dash
这样的


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 13:44 

注册: 2009-02-11 8:56
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
同样,我直接使用 /bin/sh 文件名,也是not found


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 14:16 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
yutuer 写道:
应该是的把,ls了一下
lrwxrwxrwx 1 root root 4 2009-03-21 07:55 /bin/sh -> dash
这样的



dash不是bash 差别太大了


_________________
目前负债150多万


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 16:18 

注册: 2009-02-11 8:56
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
那怎么样改才能让我能用sh 文件名
来执行shell脚本呢?


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 16:26 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
yutuer 写道:
那怎么样改才能让我能用sh 文件名
来执行shell脚本呢?



把指向dash的sh改成指向bash


_________________
目前负债150多万


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 16:44 

注册: 2009-02-11 8:56
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
好了,谢谢xhy
那为什么sh最开始会是指向dash的呢?

还有,我开始不是加了#!/bin/bash吗,有什么用处阿


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-15 17:50 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
yutuer 写道:
好了,谢谢xhy
那为什么sh最开始会是指向dash的呢?

还有,我开始不是加了#!/bin/bash吗,有什么用处阿


如果你用sh xxx的命令执行,那么第一行的 #!/bin/bash 就被无视了

如果是 chmod +x xxx.sh
再用 ./xxx.sh执行 shell会分析文件的首行,根据那个调用解释器


_________________
目前负债150多万


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-04-17 13:47 

注册: 2009-02-11 8:56
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
xhy 写道:
yutuer 写道:
好了,谢谢xhy
那为什么sh最开始会是指向dash的呢?

还有,我开始不是加了#!/bin/bash吗,有什么用处阿


如果你用sh xxx的命令执行,那么第一行的 #!/bin/bash 就被无视了

如果是 chmod +x xxx.sh
再用 ./xxx.sh执行 shell会分析文件的首行,根据那个调用解释器



彻底明白了,太谢谢鸟


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 为什么我的declare 指令在shell中是not found,但是在bash中却可以
帖子发表于 : 2009-05-24 13:20 

注册: 2008-08-27 17:04
帖子: 19
送出感谢: 0 次
接收感谢: 0 次
修改 sh 的命令 sudo dpkg-reconfigure dash/bash


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 14 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译