UNIX bash, чтобы получить вход от пользователя и вставить его в массив [duplicate]

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

2
задан 4 November 2014 в 17:20
поделиться

1 ответ

На самом деле ваше выражение files+=( "$input" ) добавляет элементы в ваш массив, но вы не итерируете его правильно.

Ваш последний цикл должен быть:

for f in "${files[@]}"; do
    echo "element is: $f"
done

Тест (благодаря @fedorqui)

$ a+=(1)
$ a+=("hello")
$ a+=(3)
$ for i in "${a[@]}"; do echo "$i"; done
1
hello
3
4
ответ дан anubhava 19 August 2018 в 05:21
поделиться
  • 1
    Быстро! Я добавил некоторое объяснение, не стесняйтесь добавить его в свой ответ, если найдете его полезным :) – fedorqui 4 November 2014 в 17:26
  • 2
    Спасибо, я добавил большую часть моего ответа, чтобы сделать его более понятным. – anubhava 4 November 2014 в 17:29
  • 3
    Спасибо, я полагаю, что $files относится к главе массива? – user 4 November 2014 в 17:30
  • 4
    Да, это правда, $files получает ваш первый элемент из массива. – anubhava 4 November 2014 в 17:32
  • 5
    Да, $var эквивалентно ${var[0]}. – fedorqui 4 November 2014 в 17:48
Другие вопросы по тегам:

Похожие вопросы: