关于sh命令疑问?

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
pshvvvv
帖子: 308
注册时间: 2009-02-23 21:58
联系:

关于sh命令疑问?

#1

帖子 pshvvvv » 2009-05-05 18:58

我照着书上的例子,写了几个脚本,给x权限后,#./file.sh运行正常,但用#sh file.sh老是出现语法错误,就几行代码,反复查了很多次,按照它提示错误行,没看出来?


这是怎么回事呢? 如何很的语法错误,那用./为什么能正常运行呢?还是其他什么?

#!/bin/bash

declare -i s
for ((i=1; i<=100; i=i+1))
do
s=s+i
done
echo "The count is ==> $s"
选择之前,选择最重要;选择之后,坚持最重要!!!
只有偏执狂才能成功!!!
头像
xuyu16
帖子: 37
注册时间: 2008-11-05 14:59

Re: 关于sh命令疑问?

#2

帖子 xuyu16 » 2009-05-05 22:06

楼主试试:bash file.sh
sh 不同于 bash 它们的语法格式有差别的
....................................
善用联系的观点看问题,
这就是哲学
...................................
头像
xuyu16
帖子: 37
注册时间: 2008-11-05 14:59

Re: 关于sh命令疑问?

#3

帖子 xuyu16 » 2009-05-05 22:08

./file.sh 时 #!/bin/bash 就发威了。
....................................
善用联系的观点看问题,
这就是哲学
...................................
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

Re: 关于sh命令疑问?

#4

帖子 hubert_star » 2009-05-05 22:09

ubuntu的sh应该是dash,而不是标准的bash

功能上被阉割了不少,好像debian的发行版都是这个

导致很多东西兼容性都不好,比如oracle,或者是学习abs的例子

换成arch吧
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me
头像
pshvvvv
帖子: 308
注册时间: 2009-02-23 21:58
联系:

Re: 关于sh命令疑问?

#5

帖子 pshvvvv » 2009-05-06 13:22

哦,是这样啊,,谢谢 :em01
选择之前,选择最重要;选择之后,坚持最重要!!!
只有偏执狂才能成功!!!
kooko1986
帖子: 13
注册时间: 2009-11-17 10:43

Re: 关于sh命令疑问?

#6

帖子 kooko1986 » 2009-11-20 18:00

:em02
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 关于sh命令疑问?

#7

帖子 tusooa » 2009-12-09 21:20

hubert_star 写了:ubuntu的sh应该是dash,而不是标准的bash

功能上被阉割了不少,好像debian的发行版都是这个

导致很多东西兼容性都不好,比如oracle,或者是学习abs的例子

换成arch吧
bsd ash
移植到Linux上的,还加了一个Debian的牌子
速度比较快,功能比较少

代码: 全选

] ls -ld //
头像
stesen
帖子: 397
注册时间: 2008-11-16 11:11

Re: 关于sh命令疑问?

#8

帖子 stesen » 2009-12-13 23:50

hubert_star 写了:ubuntu的sh应该是dash,而不是标准的bash

功能上被阉割了不少,好像debian的发行版都是这个

导致很多东西兼容性都不好,比如oracle,或者是学习abs的例子

换成arch吧
兼容性不好是因为那些东西都不合posix,dash好处比坏处多多了
用户shell还是bash,要换系统shell只要换/bin/sh软连接就行了,整天拉人进arch,烦都烦死了
等俺有钱了,俺把M$买来好好搓搓
回复