如何从bash数组中获取索引



我有这样的代码——>

list=("kek" "lol")
dict+=(["memes"]=$list)

与数组,和字典(我猜)。例如,现在我想从列表中获取第二个索引,但是使用dictionary。
有点像echo ${dict[1]},但它不会输出任何东西,即使调用echo ${dict[0]},它也会输出kek。所以我猜我在声明字典步骤上做错了什么…出于某种原因,我无法在谷歌上搜索有关这个问题的任何信息。
所以…我该怎么做?

关联数组的值总是一个标量。它不能是一个索引数组。您可以存储名称将数组(list)放入字典中,并使用名称访问数组:

list=(kek lol)
dict+=([memes]=list) # Store name of array
declare -n plist=${dict[memes]} # Fetch the list
echo ${plist[0]} # Outputs kek

Nvm,你可以用这种方式声明字典dict+=(["memes"]="kek" "lol"),它将工作,仍然有趣,如果它甚至可能通过变量声明它。我想我找不到一种方法,可以用键(key- memes)从字典中取出列表。使用"kek"获取列表值和"lol"。

那么,如果有人对我是如何通过键

将列表从字典中取出感兴趣的话
declare -A dict
dict+=( ["memes"]="kek,lol" )
dict+=( ["memes2"]="kek2,lol2" )
for key in ${!dict[@]}
do
echo "key is: $key"
IFS=',' read -r -a list_dict <<< "${dict[$key]}"
for values_by_the_key in ${list_dict[@]}
do
echo "value: $values_by_the_key"
done
done

所以,基本上它的键值不是一个列表,只是一个字符串,然后被转换成列表…但是它可以工作!:)

相关内容

  • 没有找到相关文章

最新更新