![MacOS 10.4.0 中原始 bash 是否支持数组?](https://linux22.com/image/1282981/MacOS%2010.4.0%20%E4%B8%AD%E5%8E%9F%E5%A7%8B%20bash%20%E6%98%AF%E5%90%A6%E6%94%AF%E6%8C%81%E6%95%B0%E7%BB%84%EF%BC%9F.png)
我正在使用简单的数组操作编写 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.11和 PPC 上的 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-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 上测试了你的数组代码,它按预期工作了。