gpt4 book ai didi

linux - 我用 0 初始化数组时做错了什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:09 30 4
gpt4 key购买 nike

当我检查数组的长度始终为 1 时,即使我在命令行中提供了更多参数

for i in $*
do
echo $i
conect[$i]=0
done

echo ${#conect}

最佳答案

试试这个:

#!/bin/bash
declare -A conect
for i in "$@"
do
echo $i
conect[$i]=0
done
echo ${#conect[@]}

解释:

  • 必须使用declare -A 声明关联 数组(即索引可以是非数字的)。如果索引保证为数字,则不需要此。
  • ${#foo} 是字符串值变量的长度(字符数); ${#conect[@]} 是数组的长度(元素个数)。
  • 正如其他人所指出的,"$@" 优于 $*,尤其是当(引号)参数可能包含空格时。

关于linux - 我用 0 初始化数组时做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43595889/

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