为什么我运行时只得到“cat”
awk 'BEGIN {
animal[three] = "hen"
animal[two] = "dog"
animal[one] = "cat"
for (var in animal) {
print animal[var]
}
}
??
它不应该打印“母鸡”,“狗”和“猫”吗?
答案1
awk 数组的索引可以是数字(如传统数组)或字符串(关联数组)。因此,您可以执行
animal[1] = "cat"
或者
animal["one"] = cat
然而,如果你这样做
animal[one] = cat
awk 将尝试查找一个名为“one”的变量,失败,并有效地执行以下操作:
animal[""] = cat
因此,在您的程序中,所有三种动物都被分配给animal[""]
,所以您的数组中最终只有一个元素。
如果您将one
,two
和three
放在引号中,您的代码将按预期工作。