sh 和 bash 都是常见的Unix shell,其实还有另外一个是 dash,接下来看下三者的联系和区别。 sh sh 是 Shell 的缩写,是Unix/Linux系统的默认shell,也是最古老的shell之一。sh是标准的POSIX shell,有许多不同版本和实现,如 Bourne shell 和POSIX shell。 bash bash 是 Bourne-Again Shell 的缩写,是 sh 的增强...
bash 是 Bourne-Again Shell 的缩写,是 sh 的增强版,具有更多的功能和选项。bash提供了命令自动补全、历史记录、别名、作业控制等特性。bash 是大多数 Linux 发行版及macOS 系统的默认 shell。 dash dash 是 Debian Almquist shell 的缩写,是从 NetBSD 派生而来的轻量级 shell,专门为 Debian 发行版而设计。与 bas...
sh、bash 和 dash 是三种常见的Unix shell。sh是Unix/Linux系统的默认shell,也是最古老的shell之一,是标准的POSIX shell,有多个版本和实现,例如Bourne shell和POSIX shell。bash是Bourne-Again Shell的简称,是sh的增强版本,具有更多功能和选项。它提供了命令自动补全、历史记录、别名和作业控制等特性。
原来bash是GNU/Linux 操作系统中的 /bin/sh 的符号连接,但由于bash过于复杂,有人把 bash 从 NetBSD 移植到 Linux 并更名为 dash,且/bin/sh符号连接到dash。Dash Shell 比 Bash Shell 小的多(ubuntu16.04上,bash大概1M,dash只有150K),符合POSIX标准。Ubuntu 6.10开始默认是Dash。 2.规范和建议 标记为 “#!/...
Ubuntu的 shell 默认安装的是 dash,而不是 bash。 运行以下命令查看 sh 的详细信息,确认 shell 对应的程序是哪个: $ls -al /bin/sh dash 比 bash 更轻,更快。但 bash 却更常用。 如果一些命令、脚本等总不能正常执行,有可能是 dash 的原因。
Ubuntu下shell脚本运行异常:bash和dash的区别 Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\nTest\n"到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e "\n...
Ubuntu的 shell 默认安装的是 dash,而不是 bash。 运行以下命令查看 sh 的详细信息,确认 shell 对应的程序是哪个: $ls -al /bin/sh dash 比 bash 更轻,更快。但 bash 却更常用。 如果一些命令、脚本等总不能正常执行,有可能是 dash 的原因。
shell脚本Syntax error: Bad for loop variable 在shell脚本中写for循环出现这个问题原因:从ubuntu6.10开始,ubuntu就将先前默认的bashshell更换成了dashshell;其表现为 /bin/sh链接倒了/bin/dash而不是传统的/bin/bash。 解决办法:sudo dpkg-reconfiguredash选择no 出现如下: 接着运行: 显示成功 ...
Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\nTest\n"到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e "\nTest\n"是不会输出"-e"的。
最近在工作中遇到一个很奇葩的问题,就是一个嵌入式的SDK编译,它里面执行shell命令的时候,使用的dash shell来解析,而通常我们默认用的是bash shell来解析;我按照bash shell那样照常编写脚本,大部分的脚本是没有问题的,但是偏偏就被我遇到了不一样的地方,以此文记录下。