You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于test.tmp文件创建关联数组?现有Shell代码无法运行

问题分析与解决

你的代码存在反引号配对错误,导致语法解析失败。另外,每次循环调用两次awk效率较低,我们可以直接通过read命令拆分每行的键和值,简化逻辑同时提升效率。

修正后的关联数组创建代码

declare -A index
while read -r key value; do
    index["$key"]="$value"
done < test.tmp

数组检查代码(可直接使用)

for i in "${!index[@]}"; do
    echo "index $i: ${index[$i]}"
done

关键说明

  • read -r key value:直接将每行的第一个字段赋值给key,第二个字段赋值给value,无需额外调用外部工具,逻辑更简洁高效。
  • 变量引用时添加双引号"$key"和"$value",可以避免键或值包含空格、特殊字符时出现解析错误。
  • 原代码的反引号错误:index[echo $line | awk '{print $1}'] 缺少闭合的反引号,即便修正后,这种写法也远不如read`拆分的方式实用。

内容的提问来源于stack exchange,提问作者Tilei Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:30:50