- 灰烬¶
Ash通常用于GNU/Linux和BSD系统作为与Bourne兼容的轻量级外壳。灰烬0.2有一些0.3.x系列中修复的错误,但可移植的shell脚本应该可以解决这些问题,因为0.2版仍附带许多GNU/Linux发行版。
与灰分0.2兼容:
- 不使用'$?'展开空变量或未设置变量后,或在
评估
:
foo公司=假$foo美元echo“不要使用它:$?”假eval“echo”不要使用它:$?“”
- 不要在变量扩展中使用命令替换:
- 请注意,单个内置替换不是由subshell,因此它们的效果适用于当前shell!请参见外壳替换,项目“命令替换”。
- 猛击¶
要检测您是否正在运行Bash,请测试底座_版本
已设置。要求Posix兼容性,运行'集合-o posix’. 请参见Bash Posix模式在里面GNU Bash参考手动,以了解详细信息。
- Bash 2.05及更高版本¶
Bash 2.05及更高版本使用不同的格式的输出设置
内置,旨在评估输出更容易。然而,此输出与早期版本不兼容Bash的版本(可能还有其他许多shell)。所以如果使用Bash 2.05或更高版本执行配置
,您还需要对所有其他构建任务使用Bash 2.05。
- 肯尼亚先令¶
-
Korn shell与Bourne系列兼容,并且主要符合Posix。它通常有两种主要的变体被称为'88肯尼亚先令'和'93肯尼亚先令',以首字母年份命名释放。它通常被称为科什
,但被称为第页
在某些主机上,如果您设置了适当的路径。
在Solaris 11上,/垃圾桶/桶
和/usr/bin/ksh
都是‘93肯尼亚先令’. 在Solaris 10及更早版本上,/垃圾桶/桶
是一个pre-Posix Bourne shell和Korn shell可在其他地方找到:
/usr/bin/ksh
是'88肯尼亚先令'在Solaris 10上,
/usr/xpg4/bin/sh
是符合Posix的变体‘88肯尼亚先令'在Solaris 10及更高版本上,和/usr/dt/bin/dtksh
是'93肯尼亚先令’.非标准变体可能是可选的一部分包装。这些包裹没有额外费用,但不是最小操作系统安装的一部分,因此某些安装可能没有。
从Tru64 4.0版开始,Korn shell/usr/bin/ksh
也可以作为/usr/bin/posix/sh
.如果环境变量箱子_SH
设置为xpg4(xpg4)
,子调用标准外壳符合Posix。
- Pdksh公司¶
Korn shell的公共域克隆名为pdksh公司
分布广泛可用:它具有“88肯尼亚先令'功能以及一些它自己的。它通常设置KSH_版本
,除非调用为/垃圾桶/桶
在OpenBSD上,类似于Bash,您可以要求运行Posix兼容性集合-o posix’. 不幸的是pdksh公司
5.2.14(截至2007年1月的最新稳定版本)Posix模式存在缺陷并导致pdksh公司
从波西出发至少有一个方面,看外壳替换.
- Zsh公司¶
检测您是否正在跑步兹什
,测试是否ZSH_版本
已设置。默认情况下兹什
是不与Bourne shell兼容:必须执行'模拟sh’,和兹什
3.1.6-dev-18之前的版本还必须设置NULLCMD公司
到':’. 请参见兼容性在里面Z Shell手册,以了解详细信息。
默认Mac OS X第页
最初是Zsh;已更改为Mac OS X 10.2中的Bash。