Почему я получаю только "кот", когда я бегу
awk 'BEGIN {
animal[three] = "hen"
animal[two] = "dog"
animal[one] = "cat"
for (var in animal) {
print animal[var]
}
}
??
Разве это не должно печатать "курицу", "собаку" и "кошку"?
Почему я получаю только "кот", когда я бегу
awk 'BEGIN {
animal[three] = "hen"
animal[two] = "dog"
animal[one] = "cat"
for (var in animal) {
print animal[var]
}
}
??
Разве это не должно печатать "курицу", "собаку" и "кошку"?
Индексы для массивов awk могут быть числовыми (как в традиционном массиве) или строками (ассоциативный массив). Так что вы можете сделать
animal[1] = "cat"
или же
animal["one"] = cat
Тем не менее, если вы делаете
animal[one] = cat
awk попытается найти переменную с именем 'one', потерпит неудачу и эффективно сделает это:
animal[""] = cat
Таким образом, в вашей программе все три животных назначены animal[""]
, так что в итоге вы получите только один элемент в вашем массиве.
Если вы поместите one
, two
и three
в кавычки, ваш код будет работать так, как вы ожидаете.