关于sh,bash和dash】的更多相关文章

Linux中的shell有多种类型,其中最常用的几种是Bourne   shell(sh).C   shell(csh)和Korn   shell(ksh).三种shell各有优缺点. Bourne   shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用.Bourne   shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell. Linux操作系统缺省的shell是Bourne   Again   shell,它是Bourne   she…
Ubuntu切换默认sh为bash或者dash   1 bash与dash 从Ubuntu 6.10开始,默认使用dash(theDebian Almquist Shell)而不是bash(the GNUBourne-Again Shell). 但Login Shell还是bash. 原因是dash更快.更高效,而且它符合POSIX规范.Ubuntu在启动的时候会运行很多shell脚本,使用dash可以加快启动速度. 1.1 什么是bash ? Bash(GNU Bourne-Again She…
Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\nTest\n"到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e "\nTest\n"是不会输出"-e"的. 我就在想是什么原因,后来终于发现是Ubuntu下sh默认指向dash. echo $SHELL…
什么是bash ? Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh.csh.ash.bsh.ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shell Script通常可以在很多种Shell上使用 什么是dash ? dash is the standard command interpreter for the sy…
在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本.目前研发送测的shell脚本中主要有以下两种方式:(1) #!/bin/sh(2) #!/bin/bash以上两种方式有什么区别?对于脚本的实际运行会产生什么不同的影响吗? 脚本test.sh内容:#!/bin/shsource pcy.sh #pcy.sh并不存在echo hello执行./test.sh,屏幕输出为:./test.sh: line 2: pcy.sh: No such file or directory由此…
一..sh文件介绍 .sh为Linux的脚本文件,我们可以通过.sh执行一些命令,可以理解为windows的.bat批处理文件. 二.点命令(.) .命令和source是同一个命令,可以理解为source的缩写,简称点命令. 三.sh/base/source/.命令执行.sh文件的区别 假如有一个文件test.sh,脚本内容如下 #!/bin/bash echo "step 1 sleeping" sleep 200 echo "step 2 sleeping" s…
sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别 1. Shell脚本的书写 在写Shell脚本时,往往第一行要注明用什么解释器来解释这个脚本. 如#!/bin/bash即用/bin/bash这个解释器来解释接下来的语句. 还有如#!/bin/csh Shell脚本的一般后缀是.sh 2. Shell的类型(以下列出相对流行的shell,但不是全部) sh(全称Bourne Shell),是UNIX最初使用的shell,而且在每种UNIX上都可以使用. Bourne Sh…
转载自:http://zhidao.baidu.com/question/493376840.html, http://blog.sina.com.cn/s/blog_71261a2d0100wmbj.html 谢谢! 1.Shell脚本 有那些类型 比如说 .csh . py .sh 这些脚本又有什么区别 通常写一个shell脚本都要在第一行注明使用什么解释器来解释这个脚本,即写成:#!/bin/bash 这样的形式,意思是告诉系统要使用/bin/bash这个解释器来解释下面的语句. shel…
w shell confusion..what is diff between bash, ksh, csh, tcsh..??  http://www.linuxquestions.org/questions/linux-newbie-8/shell-confusion-what-is-diff-between-bash-ksh-csh-tcsh-256625/ Code: #! /bin/bash when you write a bash script. You can execute t…
1 debian下shell脚本的执行过程 当sh xxx.sh,或则./xxx.sh时,默认是sh解释器来执行这个shell脚本的,但是sh是到bash的软连接,所以本质上还是bash来解析这shell脚本. 2 debian下使用bash而不是用dash debian下默认是dash,需要sudo  dpkg-reconfigure dash,来切换到bash.…
Ubuntu的 shell 默认安装的是 dash,而不是 bash. 运行以下命令查看 sh 的详细信息,确认 shell 对应的程序是哪个: $ls -al /bin/sh dash 比 bash 更轻,更快.但 bash 却更常用. 如果一些命令.脚本等总不能正常执行,有可能是 dash 的原因. 比如编译 Android 源代码的时候,如果使用 dash,则有可能编译出错,或者编译的系统不能启动. 通过以下方式可以使 shell 切换回 bash: $sudo dpkg-reconfig…
http://blog.sina.cn/dpool/blog/s/blog_5f16b0590100r1ub.html?vt=4…
原文链接,转载请注明出处: http://www.happycxz.com/m/?p=137 常见shell类型 Bourne shell (sh) UNIX 最初使用,且在每种 UNIX 上都可以使用. 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell. C shell (csh) csh, the C shell, is a command interpreter with a syntax similar to the C programming lan…
今天用make 编译 蹦到 bash ‘/bin/sh: Syntax error: “(” unexpected 和 /bin/sh: [[: not found 这种莫名奇妙的错误 原因是是linux将sh指向了dash而不是bash 直接改配置 dpkg-reconfigure dash 选默认不是dash…
bash.dash(/bin/bash和/bin/sh) 原文:http://www.cnblogs.com/dkblog/archive/2011/04/02/2003822.html Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh).C shell(csh)和Korn shell(ksh).三种shell各有优缺点.Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用.Bourne shell在shell编程方面相当优秀…
在一般的linux系统当中(如redhat),使用sh调用执行脚本相当于打开了bash的POSIX标准模式(等效于bash的 --posix 参数),一般的,sh是bash的“子集”,不是子集的部分.bash程序执行,当“$0”是“sh”的时候,则要求代码遵循一定的规范,当不符合规范的语法存在时,则会报错,所以可以这样理解,“sh”并不是一个程序,而是一种标准(POSIX),这种标准,在一定程度上保证了脚本的跨系统性 ubuntu默认的sh是连接到dash,而我们写shell脚本时使用的时bas…
一直以为在shell脚本中#都是代表着注释功能,同样在脚本开始的#!/bin/sh也只是告诉用户这是一个shell脚本,而最近顺手查了下,才发现不是这个意思,分享下面的文章. 转自:http://www.cnblogs.com/EasonJim/p/6850319.html 一.意思 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是此解释此脚本的shell的路径. $ cat /etc/shells可以查看系统支持的shell格式 其实第一句的#!是对脚…
一.意思 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径. 其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本. 比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,甚至/bin/echo等等. #!/bin/bash同理. 二.区别 GNU/Linux操作系统中的/bin/sh本是bash (Bourne-Again…
写好的shell sh执行脚本报错[[: not found,改shell多麻烦,索性直接把电脑默认的dash改成使用bash 1.查看目前使用 Ubuntu版本默认sh都是使用的dash 执行 ls -al /bin/sh 结果为 /bin/sh -> dash 2.执行下面命令选择不使用默认dash sudo dpkg-reconfigure dash 选择no 3.查看切换后的结果 执行 ls -al /bin/sh 结果为 /bin/sh -> bash…
在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本.目前研发送测的shell脚本中主要有以下两种方式:(1) #!/bin/sh(2) #!/bin/bash在这里求教同福客栈的各位大侠们一个问题:以上两种方式有什么区别?对于脚本的实际运行会产生什么不同的影响吗? 脚本test.sh内容:#!/bin/shsource pcy.sh #pcy.sh并不存在echo hello执行./test.sh,屏幕输出为:./test.sh: line 2: pcy.sh: No such…
刚刚学习SHELL 写了一个简单的例子发生如下错误 -bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory VI打开文件,没发现任何问题, 把/bin/bash改成/bin/sh -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory 依然报错,脚本内容在VI下没有任何问题,仔细一看错误消息,^M..明显在第一行末尾被…
在linux里,source.sh.bash../都可以执行shell script文件,那它们有什么不同吗? ----------- 1.source source a.sh 在当前shell内去读取.执行a.sh,而a.sh不需要有"执行权限" source命令可以简写为"." . a.sh 注意:中间是有空格的. 2.sh/bash sh a.sh bash a.sh 都是打开一个subshell去读取.执行a.sh,而a.sh不需要有"执行权限&q…
原文地址:http://blog.csdn.net/caesarzou/article/details/7310201 source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以无"执行权限" 注:该命令通常用命令“.”来替代. 如:source .bash_profile . .bash_profile两者等效. source(或点)命令通常用于重新执行刚修改的初始化文档. source命令(从 C…
因为今天写了个小脚本,死活不成功,总是报文件或者目录不存在,问了一下我们马同学的正常写法,发现只有脚本头的区别,也就是今天本文要讲的#!/bin/sh与#!/bin/bash. 本文参考:https://www.cnblogs.com/aaronLinux/p/6885288.html和http://www.cnblogs.com/baizhantang/archive/2012/09/11/2680453.html 一:解释 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊…
关于#!/bin/bash和#!/bin/sh   #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径. bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,... 我们可以通过以下一个示例来进行实验,了解#!/bin/bash的使用. 除第一行外,脚本中所有以“#”开头的行都是注释. 1)#!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释. 这里有三…
add by zhj: 主要不同是,source是在当前shell中执行脚本,而sh, bash, ./是在当前shell的child shell中执行脚本 原文:http://www.cnblogs.com/pcat/p/5467188.html 在linux里,source.sh.bash../都可以执行shell script文件,那它们有什么不同吗? ----------- 1.source source a.sh 在当前shell内去读取.执行a.sh,而a.sh不需要有"执行权限&q…
一些人喜欢用vim来写linux shell script, 但是, 有的人喜欢在Windows下用一些方便的编辑器(比如鼎鼎大名的Notepad++)写好, 然后拷贝文件到linux下, 结果呢, 在执行脚本a.sh的时候, 会出现如下问题: mracale@ubuntu:~$ ./long.sh -bash: ./long.sh: /bin/bash^M: bad interpreter: No such file or directory 什么原因呢, 我们有理由怀疑是文件格式问题? 我们…
在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本.目前研发送测的shell脚本中主要有以下两种方式:(1) #!/bin/sh(2) #!/bin/bash以上两种方式有什么区别?对于脚本的实际运行会产生什么不同的影响吗? 脚本test.sh内容:#!/bin/shsource pcy.sh #pcy.sh并不存在echo hello执行./test.sh,屏幕输出为:./test.sh: line 2: pcy.sh: No such file or directory由此…
[From] http://blog.51cto.com/meiling/1826201 在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本.目前研发送测的shell脚本中主要有以下两种方式: (1) #!/bin/sh(2) #!/bin/bash 以上两种方式有什么区别?对于脚本的实际运行会产生什么不同的影响吗? 脚本test.sh内容: #!/bin/shsource pcy.sh #pcy.sh并不存在echo hello 执行./test.sh,屏幕输出为:./tes…
1.sh/bash要注意空格的使用 2. for循环: for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done while循环和多选择语句 #!/bin/bash while : d…