分页: 1 / 2

关于bash和sh

发表于 : 2011-04-26 16:22
tosail2010
我用的是Ubuntu10.04
输入命令:echo $SHELL
显示:/bin/bash

如果我执行shell脚本,脚本中无#!/bin/sh。
脚本是在bash,还是在sh中运行呢。

Re: 关于bash和sh

发表于 : 2011-04-26 16:28
lilydjwg
tosail2010 写了:我用的是Ubuntu10.04
输入命令:echo $SHELL
显示:/bin/bash

如果我执行shell脚本,脚本中无#!/bin/sh。
脚本是在bash,还是在sh中运行呢。
你加上呗

Re: 关于bash和sh

发表于 : 2011-04-26 16:38
灰色小狼
没有就默认

Re: 关于bash和sh

发表于 : 2011-04-26 16:58
ebok
没有的话就是一组命令的组合,shell内建的条件测试,循环等全部不能用.

Re: 关于bash和sh

发表于 : 2011-04-26 20:33
lexdene
我印象中没有sh这个程序,只有bash这个程序。
而/bin/sh实际上只是一个指向/bin/bash的链接。
您可以看一下,我记不清了。

代码: 全选

ls -l /bin/sh
看看它是不是一个链接。

Re: 关于bash和sh

发表于 : 2011-04-26 21:27
lilydjwg
lexdene 写了:我印象中没有sh这个程序,只有bash这个程序。
而/bin/sh实际上只是一个指向/bin/bash的链接。
您可以看一下,我记不清了。

代码: 全选

ls -l /bin/sh
看看它是不是一个链接。
我表示您的印象非常不准确。Ubuntu 下,sh 是 dash 的软链接。

Re: 关于bash和sh

发表于 : 2011-04-27 8:21
tosail2010
灰色小狼 写了:没有就默认
我如何知道默认的是哪种?

Re: 关于bash和sh

发表于 : 2011-04-27 9:45
levee
bash兼容sh。

Re: 关于bash和sh

发表于 : 2011-04-27 10:28
link_01
bash可以以sh的模式运行,它是根据名称来分辨的
用#!/bin/sh的话就是传统shell。

Re: 关于bash和sh

发表于 : 2011-04-28 9:25
fanhe
sh现在的意义多数在于泛指了,在debian系当中,它是一个软链接,它根据情况可以是dash,bash等等,默认是dash
dash是很标准的shell语法,没有任何扩展功能,速度比bash快一些
我建议还是写兼容性最好的脚本吧,虽然很多系统都有bash

类似于,同是c语言,但是有gcc,clang编译器

Re: 关于bash和sh

发表于 : 2011-04-28 9:33
eexpress
fish csh zsh tcsh ksh dsh psh

Re: 关于bash和sh

发表于 : 2011-04-28 12:12
lilydjwg
eexpress 写了:fish csh zsh tcsh ksh dsh psh
没有 ash?

Re: 关于bash和sh

发表于 : 2011-04-29 9:05
tosail2010
eexpress 写了:fish csh zsh tcsh ksh dsh psh
这是为什么?

谢谢各位的解答,我想多了解一些关于shell的资料。有没有好点的网站或者书。推荐一下。

Re: 关于bash和sh

发表于 : 2011-04-29 9:15
adam8157
link_01 写了:bash可以以sh的模式运行,它是根据名称来分辨的
用#!/bin/sh的话就是传统shell。
事实上, 即使传过去$0是sh, 也会比真正的sh多些功能, 导致未觉察的不兼容情况出现...

Re: 关于bash和sh

发表于 : 2011-04-29 9:16
fanhe
tosail2010 写了:
eexpress 写了:fish csh zsh tcsh ksh dsh psh
这是为什么?

谢谢各位的解答,我想多了解一些关于shell的资料。有没有好点的网站或者书。推荐一下。
《高级Bash脚本编程指南》
google这本书