/bin/sh 与 /bin/bash 的区别】的更多相关文章

/bin/sh 与 /bin/bash 的区别,用 : 截取字符串不是POSIX 标准的. 区别 sh 一般设成 bash 的软链 (symlink) ls -l /bin/sh lrwxrwxrwx 1 root root 4 Sep 14 04:45 /bin/sh -> dash 在一般的 linux 系统当中(例外如 FreeBSD,OpenBSD 等),使用 sh 调用执行脚本相当于打开了bash 的 POSIX 标准模式 也就是说 /bin/sh 相当于 /bin/bash --po…
因为今天写了个小脚本,死活不成功,总是报文件或者目录不存在,问了一下我们马同学的正常写法,发现只有脚本头的区别,也就是今天本文要讲的#!/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来解释执行,#!是特殊…
一直以为在shell脚本中#都是代表着注释功能,同样在脚本开始的#!/bin/sh也只是告诉用户这是一个shell脚本,而最近顺手查了下,才发现不是这个意思,分享下面的文章. 转自:http://www.cnblogs.com/EasonJim/p/6850319.html 一.意思 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是此解释此脚本的shell的路径. $ cat /etc/shells可以查看系统支持的shell格式 其实第一句的#!是对脚…
Linux 中的 shell 有很多类型,其中最常用的几种是: Bourne shell (sh).C shell (csh) 和 Korn shell (ksh), 各有优缺点.Bourne shell 是 UNIX 最初使用的 shell,并且在每种 UNIX 上都可以使用, 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell.Linux 操作系统缺省的 shell 是Bourne Again shell,它是 Bourne shell 的扩展,简称 Bas…
一.意思 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径. 其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本. 比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,甚至/bin/echo等等. #!/bin/bash同理. 二.区别 GNU/Linux操作系统中的/bin/sh本是bash (Bourne-Again…
运行/usr/bin/helloworld命 令是提示“-/bin/sh: /usr/bin/helloworld: not found”,一开始我以为是helloworld没有运行权限,不过我给了它运行权限还是提示同样的错误.我在网上搜了下找到了原因:只所以提示 “-/bin/sh: /usr/bin/helloworld: not found”这个,是因为我没有拷helloworld所需的库文件.那怎么才能知道helloworld需要哪些库文件呢,可以这样,在命令行输入 arm-linux-…
今天在用ssh Secure shell 连接虚拟机中的Ubuntu编写程序时,想比对一下两个源代码有什么差别,但是在一个ssh 客户端下不断的切换很是费劲.于是想着在主机中再添加一个用户.我原本用ssh Secure shell 登陆用的是root用户.于是想着添加一个sshConnect用户.于是在服务器的终端下通过使用 useradd命令和passwd命令添加了一个sshConnect用户,查看/etc/passwd 文件中的最后一行有sshConnect用户的数据. 但是当我通过ssh…
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编程方面相当优秀…
在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…
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…
[linux] ubuntu 切换默认的/bin/sh 背景 ubuntu 默认的sh, 也就是/bin/sh默认被切换成了dash,dash体积相对于bash更小,并且性能相对于bash更好, 但是有些情况下,需要默认的/bin/sh 为shell 使用命令 sudo dpkg-reconfigure dash 选择no 输出log Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' Adding 'diversion of /…
关于#!/bin/bash和#!/bin/sh   #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径. bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,... 我们可以通过以下一个示例来进行实验,了解#!/bin/bash的使用. 除第一行外,脚本中所有以“#”开头的行都是注释. 1)#!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释. 这里有三…
#!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径. bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,... 我们可以通过以下一个示例来进行实验,了解#!/bin/bash的使用. 1)#!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释. 这里有三个脚本(脚本都要使用”chmod +x  scriptname“命令来获得可执行权限): tbash1…
今天用make 编译 蹦到 bash ‘/bin/sh: Syntax error: “(” unexpected 和 /bin/sh: [[: not found 这种莫名奇妙的错误 原因是是linux将sh指向了dash而不是bash 直接改配置 dpkg-reconfigure dash 选默认不是dash…
运行shell脚本时,报下面这个错误:   -bash: ./radar.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录 错误分析: 因为操作系统是windows,我在windows下编辑的脚本,所以有可能有不可见字符. 脚本文件是DOS格式的, 即每一行的行尾以\n\r来标识, 其ASCII码分别是0x0D, 0x0A.   可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的   解决方法: vim filename 然后用命令…
昨天在windows下用写字板写了个shell脚本,使用winscp上传到linux上运行的时候发现运行不了,提示-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录,经过查找资料发现原因如下: 1.dos格式的文本文件要转换为unix格式的文本文件,在linux上操作如下:#unix2dos job.sh 2.或者vi job.sh set ff=unix wq! 保存退出后就可以运行.…
编译文件的时候出现 /bin/sh: 1: syntax error: "(" unexpected 错误. 网上查到的资料都是: (1)在脚本前写#!/bin/bash (2)执行dpkg-reconfigure dash然后选No 然而做了这两步之后,同样的错误还是照样出现. 在Makefile中查到出问题的是make语句中的$(shell pwd)部分. 后来发现代码目录的目录名中包含了括号!把目录改名,去掉名字中的括号,恢复正常.…
问题描述:sh文件中,在win环境下,用WinSCP编辑,出现如下错误: -bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory 解决方案:这是win的编码引起的,可通过如下解决. 1.查看该文件:vim  start.sh 2.查看该错误文件的格式(一般报错的文件格式是DOS): :set ff 3.修改该文件格式为UNIX: :set ff=unix 4.再保存. :wq!---------------…
问题: 在Linux系统中使用“vi test.sh”命令创建.sh文件,保存文件(:wq)并赋予权限(chmod +x test.sh)后,执行(./test.sh),出现问题:“bash: ./test: bin/sh: bad interpreter: No such file or directory”. test.sh文件代码如下: #!bin/sh str="hello world" echo $str echo "shell,${str}" 解决办法如…
今天执行一个shell脚本,然后在执行的时候报错,脚本内容很简单,仅供测试: #!/bin/sh echo "test shell " 具体报错信息如下 [root@localhost test]# ./test.sh -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory 由于之前自己对shell不太熟悉,找同事沟通了后了解了原委,主要原因是test.sh是我在windows下编辑然后上传到lin…
在鸟哥的私房菜的一书中,介绍了UNIX的版本以及众多的SHELL版本. 早在UNIX年代,发展者众多,所以由于shell依据发展者的不同就有许多版本,比如sh,C SHell,K SHell,还有TCSH等,每一种Shell都各有特点.当然也有我们的bash,bash这个shell是Bourne Shell的增强版本,也是基于GNU的架构下发展出来的. sh和bash的区别 因为bash是sh的增强版本,在我们平常实地操作的时候如果sh这个命令不灵了我们应当使用bash. 举个例子来说如果我们使…
转载网址:http://blog.163.com/hashes@yeah/blog/static/16867631220101029847420/ 对#!/bin/sh的认识 第一次学shell编程,看的文章中说shell程序必须以"#!/bin/sh"开始,也就认为是这样了,虽然知道在shell中以"#"开始的语句都是注释,但也从没认为"#!/bin/sh"也是注释,就像对C语言程序必须有main函数一样毫无怀疑.但前些时候又听说"#…
什么是SHELL? shell的中文意思就是贝壳,其实比较类似于我们内核的壳.简而言之就是只要能够操作应用程序的接口都能够称为SHELL.狭义的shell指的是命令行方面的软件,广义的SHELL则包括图形界面. SHELL的版本 在鸟哥的私房菜的一书中,介绍了UNIX的版本以及众多的SHELL版本. 早在UNIX年代,发展者众多,所以由于shell依据发展者的不同就有许多版本,比如sh,C SHell,K SHell,还有TCSH等,每一种Shell都各有特点.当然也有我们的bash,bash这…
第一次学shell编程,看的文章中说shell程序必须以"#!/bin/sh"开始,也就认为是这样了,虽然知道在shell中以"#"开始的语句都是注释,但也从没认为"#!/bin/sh"也是注释,就像对C语言程序必须有main函数一样毫无怀疑.但前些时候又听说"#!/bin/sh"也是注释,可有可无,当时觉得真是一个失败,连基本的语法都分不清.前几天借了一本书,才真正认识了"#!/bin/sh".shell…
问题:bin/sh^M: bad interpreter: No such file or directory 原因:.sh脚本在windows系统下用记事本文件编写的.不同系统的编码格式引起的. 解决方法:修改.sh文件格式      (1)使用vi工具         vi test.sh       (2)利用如下命令查看文件格式       :set ff 或 :set fileformat       可以看到如下信息       fileformat=dos 或 fileformat…
[转]编译错误: /bin/sh: 1: pushd: not found的问题 http://blog.csdn.net/ojinxi/article/details/12186839 ubuntu环境中报如下错误: 查看原因: 进入/bin目录,查看sh的链接文件,显示如下:表示sh命令链接到的是dash,而pushd命令需要在bash的环境中执行. 解决方法: 执行sudo dpkg-reconfigure dash 命令,将dash设置为No. 再次查看sh的链接:已经修改为bash了.…
在linux下我们经常用到的四个应用程序的目录是/bin./sbin./usr/bin./usr/sbin .而四者存放的文件一般如下:     bin目录:  bin为binary的简写主要放置一些系统的必备执行档例如:cat.cp.chmod df.dmesg.gzip.kill.ls.mkdir.more.mount.rm.su.tar等.   /usr/bin目录: 主要放置一些应用软件工具的必备执行档例如c++.g++.gcc.chdrv.diff.dig.du.eject.elm.f…
bash脚本:/bin/sh^M:bad interpreter: No such file or directory   dos2unix 实际上就是把文本文件中面的^M删除 用SHELL 写了一个简单的样例  发生例如以下错误  -bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory  解决方法: 2.能够用运行dos2unix 命令转换编码  lizhitao@users-MacBook-Pro:~…
问题 在Windows环境下用Notepad++写了个shell脚本,上传到Linux平台后运行报错如下: /bin/sh^M: bad interpreter: No such file or directory 经过查阅资料才知道,这是由于文件格式的问题:使用vi/vim进入该shell文件,按下:进入末行模式,输入set ff查询文件格式,结果如下: fileformat=dos 这个问题是由于不同的操作系统使用了不同的符号来换行导致的,可以简单参考下下面的表格: 系统 换行符 DOS C…