Bash vs.Dash

作者: Laura McKinney
创建日期: 6 四月 2021
更新日期: 14 可能 2024
Anonim
Dash Is The Only Acceptable Symlink For /bin/sh
视频: Dash Is The Only Acceptable Symlink For /bin/sh

内容

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兼容功能。

关键差异

  1. Bash是适合交互使用的出色的全功能外壳;实际上,它仍然是默认的登录外壳。但是,与破折号相比,它的启动和操作相当大且缓慢。
  2. Dash实现了Single Unix Spec,因此它不必做更多的工作即可满足该正式规范。但是某些“ bashisms”很方便,不会增加破折号的大小,并且会更容易使用破折号作为替代。
  3. dash不支持很多包含命令集–k的shell脚本,但是bash支持。
  4. Bash支持与Dash相同的脚本命令以及它自己的其他命令,Dash仅支持POSIX兼容功能。
  5. Bash是为人类设计的,提供了POSIX功能的超集,Dash是用于非交互式脚本执行的。
  6. Bash支持选项卡补全,并支持命令历史记录。
  7. Dash仅为10万,而Bash则为90万。
  8. 与Bash相比,Dash具有更快的启动和脚本执行速度。