gpt4 book ai didi

arrays - bash 和 for 循环中的关联数组

转载 作者:行者123 更新时间:2023-11-29 09:28:05 25 4
gpt4 key购买 nike

我在 bash 中迈出第一步,想创建一个关联数组并迭代它。我的直觉是这样做:

declare -A FILES=(['SOURCE']='Source/Core/Core.js' ['DIST']='dist/Core.js')

for file in "${!FILES[@]}"; do
echo $file - $FILES[$file]
done

但是输出是:

SOURCE - [SOURCE]
DIST - [DIST]

没有预期的路径。我错过了什么?顺便说一句,是否需要 declare -A

演示:https://ideone.com/iQpjmj

谢谢

最佳答案

将您的扩展放在大括号周围。没有它,$FILES$file 将单独扩展。

${FILES[$file]}

一个好的做法是将它们放在双引号内,以防止单词拆分和可能的路径名扩展:

echo "$file - ${FILES[$file]}"

测试:

$ declare -A FILES=(['SOURCE']='Source/Core/Core.js' ['DIST']='dist/Core.js')
$ for file in "${!FILES[@]}"; do echo "$file - ${FILES[$file]}"; done
SOURCE - Source/Core/Core.js
DIST - dist/Core.js

关于arrays - bash 和 for 循环中的关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25304386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com