在 ZSH 中使用数组

Hen*_*los 6 zsh shell-script

我有以下声明:

TOKENARRAY=($TOKEN)
Run Code Online (Sandbox Code Playgroud)

$TOKEN 是一个数值变量。

如果我试试这个:

echo ${TOKENARRAY[0]}
Run Code Online (Sandbox Code Playgroud)

它向我显示了一个空字符串。

如果我做:

echo ${TOKENARRAY:0}
Run Code Online (Sandbox Code Playgroud)

它向我展示了令牌

但真正奇怪的是,如果我这样做:

echo ${TOKENARRAY[1]}
Run Code Online (Sandbox Code Playgroud)

它向我展示了令牌。

这里发生了什么?这个脚本应该在 bash 中工作,但它在 zsh 中不起作用。

Tom*_*ale 5

对于同时在 bash 和 zsh 中运行的脚本,您需要使用更复杂的语法。

例如,引用数组中的第一个元素:

${array[@]:0:1}
Run Code Online (Sandbox Code Playgroud)

这里,array[@]是所有元素,0是偏移量(始终从 0 开始),1是所需元素的数量。