ZSH的新用户在这里编写他的.zshrc文件,该文件使用GNU find和一个for循环在〜/ .aliases中提供外壳程序脚本,以设置我的外壳程序别名。我刚刚在互联网上花了一个多小时,尝试了各种事情,想知道为什么此代码在BASH中有效,但在ZSH中不起作用:
$ for aliases in $(find ~/.aliases -maxdepth 1 -name "*_aliases"); source $aliases
aliases: attempt to set slice of associative array
一个多小时后,我碰巧用另一个变量名重写了该代码:
$ for files in $(find ~/.aliases -maxdepth 1 -name "*_aliases"); source $files
而且有效。
ZSH与BASH如何区别对待此代码,为什么?有什么好处吗?
这为我们提供了线索:
别名:尝试设置关联数组的切片
zshaliases
使用该参数存储定义的别名。它定义为一个关联数组,您不能在其中存储标量。
使用以下代码显示格式正确的关联数组的内容:
for k in "${(@k)aliases}"; do
echo "$k -> $aliases[$k]"
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句