
电 话:0
手 机:0
联系人:刘先生
E_mail:2074917417@qq.com
地 址:成都市金牛区
dash shell的特性
虽然bash shell是Linux发行版中最广泛使用的shell,但它并不是唯一的选择。现在基本已经了解了标准的Linux bash shell,知道了能用它做什么,是时候看看Linux世界中的其他一些shell了。接下来南昌APP制作开发公司小编将会介绍另外两个可能会碰到的shell,以及它们与bash shell有什么区别。
? ? ? ?1.什么是 dash shell
? ? ? ?Debian的dash shell的历史很有趣。它是ash shell的直系后代,而ash shell则是Unix系统上原来的Bourne shell的简化版本。Kenneth Almquist为Unix系统开发了一个Bourne shell的简化版本,并将它命名为Almquist shell,缩写为ash。ash shell最早的版本体积极小、速度奇快,但缺乏许多高级功能,比如命令行编辑或命令使用记录功能,这使它很难用作交互式shell。
? ? ? ?NetBSD Unix操作系统移植了ash shell,直到今天依然将它用作默认shell。NetBSD开发人员对ash shell进行了定制,增加了一些新的功能,使它更接近Bourne shell。新功能包括使用emacs
? ? ? ?和vi编辑器命令进行命令行编辑,利用历史命令来查看先前输入的命令。ash shell的这个版本也被FreeBSD操作系统用作默认登录shell。
? ? ? ?Debian Linux发行版创建了它自己的ash shell版本(称Debian ash,或dash)以供自用。dash复制了ash shell的NetBSD版本的大多数功能,提供了一些高级命令行编辑能力。
? ? ? ?但令人不解的是,实际上dash shell在许多基于Debian的Linux发行版中并不是默认的shell。由于bash shell在Linux中的流行,大多数基于Debian的Linux发行版将bash shell用作普通登录shell,而只将dash shell作为安装脚本的快速启动shell,用于安装发行版文件。
? ? ? ?流行的Ubuntu发行版是例外。这经常让shell脚本程序员摸不清头脑,给Linux环境中运行shell脚本带来了很多问题。Ubuntu Linux发行版将bash shell用作默认的交互shell,但dash shell用作默认的 /bin/sh? shell。这个“特性”着实让shell脚本程序员一头雾水。
? ? ? ?每个shell脚本的起始行都必须声明脚本所用的shell。在bash shell脚本中,我们一直用下面的行。
#!/bin/bash
? ? ? ?它会告诉shell使用位于/bin/bash的shell程序来执行脚本。在Unix世界中,默认shell一直是/bin/sh。许多熟悉Unix环境的shell脚本程序员会将这种用法带到他们的Linux shell脚本中。
#!/bin/sh
? ? ? ?在大多数Linux发行版上,/bin/sh文件是链接到shel程序/bin/bash的一个符号链接。这样你就可以在无需修改的情况下,轻松地将为Unix Bourne shell设计的shell脚本移植到Linux环境中。
? ? ? ?很遗憾,Ubuntu Linux发行版将/bin/sh文件链接到了shell程序/bin/dash。由于dash shell只含有原来Bourne shell中的一部分命令,这可能会(而且经常会)让有些shell脚本无法正确工作。
? ? ? ?以后将逐步了解dash shell的基础知识以及它跟bash shell的区别。如果你编写的bash shell脚本可能要在Ubuntu环境中运行,了解这些内容就尤其重要。
? ? ? ?2.dash shell 的特性
? ? ? ?尽管bash shell和dash shell都以Bourne shell为样板,但它们还是有一些差别的。在深入了解shell脚本编程特性之前,将会带你了解Debian dash shell的一些特性,以便让你熟悉dash shell的工作方式。
? ? ? ?2.1 dash 命令行参数
? ? ? ?dash shell使用命令行参数来控制其行为。下列表中列出了命令行参数,并介绍了每个参数的用途。
PS:所有作品版权归原创作者所有,与本站立场无关,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理!
Copyright © 20019-2023 荟萃信息网 版权所有 蜀ICP备16021156号-2
电 话:0 手 机:0 传 真: E-mail:2074917417@qq.com
地 址:成都市金牛区
技术支持:荟萃网络科技
扫码关注我们