SH与BASH的区别?

sh/bash/dash/ksh/zsh等Shell脚本
orlose
帖子: 6
注册时间: 2007-08-27 5:16
送出感谢: 0
接收感谢: 0

SH与BASH的区别?

#1

帖子 orlose » 2008-03-08 16:40

#!/bin/bash
#计算
#时间2008/03/08
declare -i a=5
declare -i b=3
declare -i c=$a+$b
echo $c

为什么这个脚本
用sh xxx.sh执行会
test2.sh: 5: declare: not found
test2.sh: 6: declare: not found
test2.sh: 7: declare: not found
而非得用bash xxx.sh才能执行?
头像
xiehuoli
帖子: 5941
注册时间: 2006-06-10 8:43
来自: 中国 CS
送出感谢: 0
接收感谢: 2 次

#2

帖子 xiehuoli » 2008-03-08 16:44

得,你自己脚本上开始不是写了吗?
调用bash执行#!/bin/bash
年轻没有失败! ! ! ! ! !
噢!有怪兽,有怪兽!
orlose
帖子: 6
注册时间: 2007-08-27 5:16
送出感谢: 0
接收感谢: 0

#3

帖子 orlose » 2008-03-08 16:59

我的意思是为什么有的脚本直接sh xxx.sh就行
而有的却非得bash xxx.sh?
头像
leeaman
帖子: 30702
注册时间: 2007-02-02 18:14
系统: debian sid
送出感谢: 1 次
接收感谢: 23 次

#4

帖子 leeaman » 2008-03-08 17:02

sh调用的是你默认的shell,bash是指定bash来做shell的,shell有好多个的
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

#5

帖子 BigSnake.NET » 2008-03-08 17:25

bash 兼容 sh, 但是bash功能多些
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
orlose
帖子: 6
注册时间: 2007-08-27 5:16
送出感谢: 0
接收感谢: 0

#6

帖子 orlose » 2008-03-08 17:26

#!/bin/bash
不是已经说明是使用的是BASH了么?
头像
millenniumdark
论坛版主
帖子: 4159
注册时间: 2005-07-02 14:41
系统: Ubuntu 14.04 (Kylin)
送出感谢: 42 次
接收感谢: 9 次
联系:

Re: SH与BASH的区别?

#7

帖子 millenniumdark » 2008-03-08 21:31

orlose 写了:
为什么这个脚本
用sh xxx.sh执行会
test2.sh: 5: declare: not found
test2.sh: 6: declare: not found
test2.sh: 7: declare: not found
而非得用bash xxx.sh才能执行?
不是告訴你了嗎?bash纔支持declare,你的sh(估計是dash吧)不支持
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#8

帖子 eexpress » 2008-03-08 21:45

目前,应该理解成。
sh是一种通称。
bash是一种语言。
要考历史,那就没边。
● 鸣学
weigege
帖子: 19
注册时间: 2008-02-22 22:07
送出感谢: 0
接收感谢: 0

#9

帖子 weigege » 2008-03-08 22:10

默认下的/bin/sh实际上是对/bin/bash的一个连接。
phpknows
帖子: 19
注册时间: 2007-11-26 17:49
送出感谢: 0
接收感谢: 0

#10

帖子 phpknows » 2008-03-10 20:25

现在基本上sh链接到bash
csh连接到tcsh
头像
ichaochao
帖子: 260
注册时间: 2008-03-17 21:37
来自: 深圳
送出感谢: 0
接收感谢: 0

#11

帖子 ichaochao » 2008-03-26 23:59

还不懂,只是来学习的,谢谢!
skunk
帖子: 1
注册时间: 2009-08-07 13:09
送出感谢: 0
接收感谢: 0

Re: SH与BASH的区别?

#12

帖子 skunk » 2009-08-07 13:11

phpknows 写了:现在基本上sh链接到bash

csh连接到tcsh
ubuntu好像从6.x起就连接到 dash 了
头像
懒蜗牛Gentoo
论坛版主
帖子: 7284
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 95 次

Re:

#13

帖子 懒蜗牛Gentoo » 2009-08-07 13:34

orlose 写了:#!/bin/bash
不是已经说明是使用的是BASH了么?
那只是默认情况下,也就是你直接运行这个脚本,他会用bash解释。
但是你sh xxx.sh就是再说,就非要用系统默认的shell运行,不管那行什么#!/bin/bash的鬼东西。而ubuntu目前默认的是dash,所以出问题……
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

Re: SH与BASH的区别?

#14

帖子 bones7456 » 2009-08-07 13:37

唉..不知道为dash浪费了多少口水..
关注我的blog: ε==3
uboat
帖子: 158
注册时间: 2007-11-10 11:15
送出感谢: 0
接收感谢: 0

Re: SH与BASH的区别?

#15

帖子 uboat » 2010-02-02 2:52

dash到底如何啊?
回复

回到 “Shell脚本”