内容
主要区别
Dash是一种外壳,当用作交互式登录外壳时,由于现代生活必需品的可用性很差,尽管如此,执行POSIX兼容脚本的速度比Bash快.Bash有许多其他选择,尤其是在交互使用时(尽管它确实包含了进一步的编程选择)。 Bash通常是默认交互外壳的结果,而Debian和Debian衍生物(如Ubuntu)是由于/ bin / sh实现而导致的当前Dash,因此使用#!/ bin / sh shebangs造成脚本被Dash解释。默认情况下,仅勉强于Bash。对于需要Bash执行的脚本,如果shebang是#!/ bin / bash,则解释器将使用Bash。作为Ubuntu引导过程的一部分,启动了许多shell条件。 Ubuntu核心技术小组认为,这不是单独更改每个脚本以在/ bin / dash下显式运行的更改,而该更改可能需要进行必要的持续维修,并且如果不加周密考虑,则很可能会退回,这是最大的挑战。改变默认的外壳。
什么是Bash?
Bash是Bourne-Once额外的外壳。 Bash是一种出色的功能齐全的shell,可以交互使用。当然,它仍然是默认的登录shell。 Bash是为人类设计的,提供了POSIX效率的超集。
什么是短跑?
Dash是Debian Almquist Shell。 Dash实现了Single Unix Spec,因此它不应该进一步满足该正式规范。 Dash用于非交互式脚本执行。仅Dash可帮助POSIX兼容选择。
关键差异
- Bash是一种出色的功能齐全的shell,可以交互使用。当然,它仍然是默认的登录shell。但是,它刚开始时并与破折号的可比性几乎不大且运行缓慢。
- Dash实现了Single Unix Spec,因此它不应该进一步满足该正式规范。但是,在许多“ bashism”中很有用,不会增加破折号的大小,反而使使用破折号变得简单得多。
- 大量包含命令集的shell脚本– dash不应支持,但是bash仍应支持。
- Bash支持与Dash等效的脚本指导以及其私有的其他指导,Dash Only帮助POSIX兼容选择。
- Bash是为人类而设计的,并且提供了POSIX效率的超集,而Dash是用于非交互式脚本执行的。
- Bash帮助制表符完成并支持以前的历史命令。
- 与Bash的900Okay相比,Dash勉强可以达到100Okay。
- 与Bash相比,Dash具有更快的启动和脚本执行速度。