相关疑难解决方法(0)

Zsh 数组的第一个元素索引为 1 而不是 0 是否有原因?

根据我使用现代编程和脚本语言的经验,我相信大多数程序员通常习惯于将数组的第一个元素以0 表示为索引。
使用1有什么实质性的优势吗?

我确信除了 Zsh 之外,我听说过更多的语言对数组有类似的行为;对我来说很好,因为它同样方便。
但是,由于之前发布并广泛使用的 ksh 和 bash 等 shell 脚本语言都使用 0, 为什么有人会选择更改这个通用的“标准”?

我对我的问题的直接回答是“当然不是”;
那么,我能想到的关于 shell 的这个有点“独特的功能”的唯一解释是“他们这样做只是为了炫耀他们更酷的 shell ”。

不过,我对 Zsh 或其历史知之甚少,而且我关于此的琐碎理论很有可能没有任何意义。

对此有解释吗?还是只是出于个人喜好?

zsh array history

37
推荐指数
2
解决办法
1万
查看次数

测试 shell 对数组的支持

是否有一种简洁的方法可以在命令行中测试本地类似 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例如)。

我正在寻找一个简单的测试,它可以无人参与,并在脚本开始时甚至在调用它之前合并到使用部分中。

shell array shell-script

13
推荐指数
2
解决办法
1917
查看次数

标签 统计

array ×2

history ×1

shell ×1

shell-script ×1

zsh ×1