在shell脚本数组中指定两个值

在shell脚本数组中指定两个值,shell,Shell,我想知道我们是否可以在同一个数组成员中保存两个值,例如name和number,例如,我已经编写了以下代码来实现这一点: `array[$count]={$x , 1}` 其中$x包含一个字符串,但当我要打印数组[$count]具有的值时: `echo "$count - $x1 - ${array[$count]} \n"` 它只给出第一个值,即$xbash没有多维数组,但您可以使用关联数组来伪造它: $ declare -A array $ count=5 $ array[$count,n

我想知道我们是否可以在同一个数组成员中保存两个值,例如name和number,例如,我已经编写了以下代码来实现这一点:

`array[$count]={$x , 1}`
其中
$x
包含一个字符串,但当我要打印
数组[$count]
具有的值时:

`echo "$count - $x1 - ${array[$count]} \n"`

它只给出第一个值,即
$x

bash没有多维数组,但您可以使用关联数组来伪造它:

$ declare -A array
$ count=5
$ array[$count,name]="foobar"
$ array[$count,value]=1
$ for idx in "${!array[@]}"; do printf "%s\t%s\n" "$idx" "${array[$idx]}"; done
5,value 1
5,name  foobar

这需要bash版本4

关联数组是否与perl中的哈希相似?还有一个问题,我可以改变“value”吗,因为它不应该是固定值?是的,关联数组就像一个散列。但它只能将字符串存储为值。你不想改变数组索引中的单词“value”,你想改变实际值(我有“1”)。好的“value”,换言之,将分配什么?在
=
右侧的任何内容都将分配给在左侧命名的变量,但是如果我们分配一个键已经存在的值,会发生什么情况?