ubuntu中/bin/bash与/bin/sh,区别较大吗?

sh/bash/dash/ksh/zsh等Shell脚本
回复
pigdefeet
帖子: 5
注册时间: 2009-08-11 13:19

ubuntu中/bin/bash与/bin/sh,区别较大吗?

#1

帖子 pigdefeet » 2009-08-11 13:21

使用/bin/sh不能成功执行的程序,用/bin/bash就可以了
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: ubuntu中/bin/bash与/bin/sh,区别较大吗?

#2

帖子 BigSnake.NET » 2009-08-11 13:23

是有区别的
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
pigdefeet
帖子: 5
注册时间: 2009-08-11 13:19

Re: ubuntu中/bin/bash与/bin/sh,区别较大吗?

#3

帖子 pigdefeet » 2009-08-11 13:24

BigSnake.NET 写了:是有区别的
其他系统也一样吗?
比如fedora debian等等?
谢谢

得查查两者的区别。。。。
pigdefeet
帖子: 5
注册时间: 2009-08-11 13:19

Re: ubuntu中/bin/bash与/bin/sh,区别较大吗?

#4

帖子 pigdefeet » 2009-08-11 13:27

发现ubuntu的 /bin/sh是连接到/bin/dash的 晕死
头像
昊昊昊
帖子: 182
注册时间: 2011-08-22 21:22

Re: ubuntu中/bin/bash与/bin/sh,区别较大吗?

#5

帖子 昊昊昊 » 2011-10-01 10:48

#!/bin/sh = #!/bin/bash --posix
▓   單 調   ▓
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: ubuntu中/bin/bash与/bin/sh,区别较大吗?

#6

帖子 tusooa » 2011-10-01 22:03

笨兔里指向dash的。
不一样的。

代码: 全选

] ls -ld //
头像
ljj_jjl2008
论坛版主
帖子: 14256
注册时间: 2007-09-16 8:29

Re: ubuntu中/bin/bash与/bin/sh,区别较大吗?

#7

帖子 ljj_jjl2008 » 2011-10-01 22:07

非常大,我的一个shell,就是忘了写#!/bin/bash,结果运行总是报错,写上就没事了。
还有一此,一个shell调用另一个shell,出错,单独运行,则正确,后来发现原因就是主shell写成了#!/bin/sh了,主shell的这一句会影响他调用的shell。
头像
naturalaw
帖子: 1360
注册时间: 2011-09-06 22:04

Re: ubuntu中/bin/bash与/bin/sh,区别较大吗?

#8

帖子 naturalaw » 2011-10-02 21:17

:em20 竟然这样写。
英文半角,不带空格

代码: 全选

#!/bin/bash
  • The eternal law
onlylove
论坛版主
帖子: 5371
注册时间: 2007-01-14 16:23

Re: ubuntu中/bin/bash与/bin/sh,区别较大吗?

#9

帖子 onlylove » 2011-10-02 21:27

以现在的情况来看,许多种shell和脚本语言都尽力使自己符合 POSIX 1003.2 标准. 用
--posix 选项调用Bash或在脚本开头插入 set -o posix 就能使Bash能以很接近这个标准的方
式运行. 在脚本开头用

1 #!/bin/sh

比用

1 #!/bin/bash

会更好.注意在Linux和一些UNIX风格的系统里/bin/sh是/bin/bash的一个链接(link), 并且
如果脚本以/bin/sh调用时会禁用Bash的扩展功能.

大多数的Bash脚本能不作修改就能运行在 ksh下, 反之亦然, 因为 Chet Ramey 辛勤地把 ksh
的属性移植到了最新的Bash版本
在商业的 UNIX 机器上, 使用了GNU扩展属性的标准命令的脚本可能不会工作. 这个问题在最
近几年已经有所改观了, 因为GNU软件包完美地代替了在这些"大块头的"UNIX运行的相应工具..


如果是/bin/sh,那么就是默认shell
(在Linux系统中默认是Bash).[3]使用#!/bin/sh,在大多数商业发行的UNIX上,默认是Bourne
shell,这将让你的脚本可以正常的运行在非Linux机器上,虽然这将会牺牲Bash一些独特的特征.
脚本将与POSIX[4] 的sh标准相一致
.


带颜色的是引用的
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
头像
ChenFengyuan
帖子: 770
注册时间: 2008-03-23 0:39

Re: ubuntu中/bin/bash与/bin/sh,区别较大吗?

#10

帖子 ChenFengyuan » 2011-10-04 20:52

看ls -l /bin/sh的输出,你就知道了
回复