Создание массива Bash с несколькими элементами

Очень простая проблема с bash. У меня есть массив, который выглядит так:

my_array=(1 2 3)

Однако, когда я печатаю массив или перебираю его, bash ссылается только на первый элемент.

echo $my_array
1

for element in my_array ; do
    echo $element
done
1

Как я могу получить доступ ко всем элементам?

Если вы добавите Bash shebang, Шеллчек идентифицирует проблемы с фрагментами кода. См. (первый абзац) Stack Overflow 'bash' Информационная страница для получения дополнительной информации о ShellCheck.

pjh 28.05.2019 17:44
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
1
112
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно использовать правильный синтаксис. Чтобы отобразить все элементы, используйте

for element in "${my_array[@]}" ; do
    printf '%s\n' "$element"
done

$my_array то же, что ${my_array[0]}.

Кроме того, цикл в исходном вопросе выводит my_array, а не 1. Без $ это не переменная, это просто слово.

Другие вопросы по теме