根据我使用现代编程和脚本语言的经验,我相信大多数程序员通常习惯于将数组的第一个元素以0 表示为索引。
使用1有什么实质性的优势吗?
我确信除了 Zsh 之外,我听说过更多的语言对数组有类似的行为;对我来说很好,因为它同样方便。
但是,由于之前发布并广泛使用的 ksh 和 bash 等 shell 脚本语言都使用 0, 为什么有人会选择更改这个通用的“标准”?
我对我的问题的直接回答是“当然不是”;
那么,我能想到的关于 shell 的这个有点“独特的功能”的唯一解释是“他们这样做只是为了炫耀他们更酷的 shell ”。
不过,我对 Zsh 或其历史知之甚少,而且我关于此的琐碎理论很有可能没有任何意义。
对此有解释吗?还是只是出于个人喜好?
是否有一种简洁的方法可以在命令行中测试本地类似 Bourne 的 shell 对数组的支持?
这总是可能的:
$ arr=(0 1 2 3);if [ "${arr[2]}" != 2 ];then echo "No array support";fi
Run Code Online (Sandbox Code Playgroud)
或测试$SHELL和外壳版本:
$ eval $(echo "$SHELL --version") | grep version
Run Code Online (Sandbox Code Playgroud)
然后阅读手册页,假设我可以访问它。(即使在那里,从写/bin/bash,我假设所有类似Bourne外壳承认的长选项--version,当减免KSH例如)。
我正在寻找一个简单的测试,它可以无人参与,并在脚本开始时甚至在调用它之前合并到使用部分中。