MacOS 10.4.0 中原始 bash 是否支持数组?

MacOS 10.4.0 中原始 bash 是否支持数组?

我正在使用简单的数组操作编写 bash 脚本,例如: testarray=("First Name" "Second Name" "Third Name") ; for i in "${testarray[@]}" ; do echo "$i" ; done

最初发布的 bash 版本号是多少?10.4.11 显示的差不多2.05b.0(1)-release, copyright 2002.

我在我的 MacOS 10.4.11 上测试了它,因为我看到了 2.05b 版本,所以我有点害怕,因为它甚至对于 10.4.11 来说都很旧了... 10.4.0 很可能低于 2.0。我的脚本是否向后兼容 10.4.0?

这里有人可能会把它扔进 ppc 虚拟机或类似的东西中。它不必完全是 10.4.0,但越接近越好。我不知道 Apple 的文档是否正确,但它在在线手册页:)

答案1

您可以咨询www.opensource.apple.com检查 Mac OS X 各个版本中使用的开源组件。

10.4(.0)包括“bash-44.2”;其CHANGES文件表明它是2.05b。

x86 上的 10.4.11PPC 上的 10.4.11都包含“bash-44.5”;CHANGES 表示它是 2.05b。

Apple 的 bash-44.2 和 -44.5 之间的代码差异非常小:添加了volatile一个变量并稍微改变了 SIGWINCH 处理。

再往前追溯,10.2(.0)包括“bash-23”;CHANGES 显示它是 2.05a。

Bash 没有被列为10.1或者10.0

看起来(根据消息) 数组是作为 bash-2.0 中的一项新功能引入的,因此看起来您至少可以安全地回到 Mac OS X 10.2。

答案2

我手边没有 10.4.0 系统;你会选择 10.3.9 吗?它附带 bash 版本 2.05b.0(1)-release,所以我认为你是安全的。

编辑:我找到了一些旧笔记,如果它们是正确的版本,OS X 版本 10.2.8 附带了 bash 版本 2.05a.0(1)-release。所以他们已经使用 bash v2 一段时间了……

哦,我在 10.3.9 上测试了你的数组代码,它按预期工作了。

相关内容