可以将输入读入关联数组的元素吗?

时间:2015-02-26 15:28:16

标签: shell zsh

我想使用read将数据放入关联数组的特定元素中,所以我写了以下内容:

typeset -Ag aa
aa[key]='initial value'
...
read aa[key]

会产生错误:no matches found: aa[key]

所以我写了下面的内容,它起作用了:

typeset -Ag aa
aa[key]='initial value'
...
local line
read line
aa[key]=line

有没有办法跳过临时变量line

1 个答案:

答案 0 :(得分:1)

似乎zsh尝试以某种方式对aa[key]令牌进行通配。

因此,可以使用noglob暂时关闭globbing或引用该标记。

echo val0 | noglob read aa[key]; echo $aa[key] ;# => val0

echo val1 | read 'aa[key]'; echo $aa[key] ;# => val1

  

noglob

     

不会对任何单词执行文件名生成(通配)。

     

- zshmisc(1) Precommand modifires