Bash vs.Dash
作者:
Laura McKinney
创建日期:
6 四月 2021
更新日期:
14 可能 2024
内容
Dash是一种shell,当用作交互式登录shell时,按现代标准使用性较差,但比Bash执行POSIX兼容脚本的速度更快.bash具有许多功能,尤其是在交互使用时(尽管它确实包含还有更多的编程功能)。通常将Bash作为默认的交互式外壳程序提供,而Debian和Debian派生类(如Ubuntu)将Dash作为/ bin / sh实现提供,从而导致具有#!/ bin / sh shebangs的脚本由Dash而非默认由Bash解释。对于需要Bash执行的脚本,如果shebang为#!/ bin / bash,则Bash仍将用作解释器。作为Ubuntu引导过程的一部分,启动了大量的Shell实例。 Ubuntu核心开发团队认为,最好不要进行单独更改以使其在/ bin / dash下显式运行,而这种更改将需要大量的日常维护,并且如果没有引起足够的注意,则很可能会倒退。默认外壳。
内容:Bash和Dash之间的区别
- 什么是Bash?
- 什么是短跑?
- 关键差异
- 影片说明
什么是Bash?
Bash是Bourne-Again外壳。 Bash是适合交互使用的出色的全功能外壳;实际上,它仍然是默认的登录外壳。 Bash是为人类设计的,并提供POSIX功能的超集。
什么是短跑?
Dash是Debian Almquist Shell。 Dash实现了Single Unix Spec,因此它不必做更多的工作即可满足该正式规范。 Dash用于非交互式脚本执行。 Dash仅支持POSIX兼容功能。
关键差异
- Bash是适合交互使用的出色的全功能外壳;实际上,它仍然是默认的登录外壳。但是,与破折号相比,它的启动和操作相当大且缓慢。
- Dash实现了Single Unix Spec,因此它不必做更多的工作即可满足该正式规范。但是某些“ bashisms”很方便,不会增加破折号的大小,并且会更容易使用破折号作为替代。
- dash不支持很多包含命令集–k的shell脚本,但是bash支持。
- Bash支持与Dash相同的脚本命令以及它自己的其他命令,Dash仅支持POSIX兼容功能。
- Bash是为人类设计的,提供了POSIX功能的超集,Dash是用于非交互式脚本执行的。
- Bash支持选项卡补全,并支持命令历史记录。
- Dash仅为10万,而Bash则为90万。
- 与Bash相比,Dash具有更快的启动和脚本执行速度。