- Определить массив по индексу
- Определите массив с несколькими значениями
- Определите ассоциативный массив
- Подсчитайте значения массива
- Чтение значений массива с помощью цикла
- Прочитайте конкретные значения массива
- Вставьте значения массива
- Чтение содержимого файла в массив
- Объедините значения массива
- Измените значения массива
- Удалить значения массива
- Найдите и замените значения массива
- Используйте массив в качестве аргумента функции
- Вернуть массив из функции
- Сделать массив пустым
Определить массив по индексу
Метод объявления массива путем упоминания последовательных или непоследовательных числовых индексов показан в следующем скрипте. Этот тип массива называется числовым массивом. Здесь массив «$books» создается путем определения трех последовательных индексов, а массив «$products» создается путем определения четырех непоследовательных индексов. Все значения обоих массивов печатаются с помощью функции printf.
#!/бин/баш
#Определяем индекс массива в последовательном порядке
книги [ 0 ] '=' «Изучение bash Shell»
книги [ 1 ] '=' «Операции по кибербезопасности с bash»
книги [ 2 ] '=' «Советы для профессионалов по командной строке Bash»
эхо 'Все значения первого массива:'
печать '%s\n' ' ${книги[@]} '
#Определяем индекс массива в непоследовательном порядке
продукты [ 10 ] '=' 'Ручка'
продукты [ 5 ] '=' 'Карандаш'
продукты [ 9 ] '=' 'Рулар'
продукты [ 4 ] '=' «Бумага формата А4»
эхо
эхо 'Все значения второго массива:'
печать '%s\n' ' ${продукты[@]} '
Выход :
Следующий вывод появляется после выполнения сценария. Значения обоих массивов выводятся на вывод. Порядок индексов сохраняется во время печати для массива непоследовательных индексов:
Определите массив с несколькими значениями
Числовой массив с несколькими значениями можно объявить с помощью команды «объявить» с опцией -a или без использования команды «объявить». В следующем сценарии первый массив объявляется с помощью команды «объявить», а второй массив создается без использования команды «объявить».
#!/бин/баш
#Объявляем числовой массив с помощью ключевого слова «declare»
объявить -а имена '=' ( 'Майкл' 'Дэйвид' 'Александр' 'Томас' 'Роберт' 'Ричард' )
#Распечатываем значения массива
эхо 'Все значения первого массива:'
печать '%s\n' ' ${names[@]} '
#Объявляем числовой массив без ключевого слова «объявить»
книги '=' ( «Руководства по написанию сценариев оболочки» «Биш Баш Бош!» «Изучите Bash быстро» )
#Добавить новую строку
эхо
#Распечатываем значения массива
эхо 'Все значения второго массива:'
печать '%s\n' ' ${книги[@]} '
Выход :
Следующий вывод появляется после выполнения сценария. Значения обоих массивов напечатаны здесь:
Определите ассоциативный массив
Массив, который содержит строковое значение в качестве индекса, называется ассоциативным массивом. Опция -A используется с командой «объявить» в Bash для создания ассоциативного массива Bash. В следующем скрипте первый ассоциативный массив объявляется путем отдельного упоминания индексов, а второй массив объявляется путем упоминания всех пар ключ-значение во время объявления массива.
#!/бин/баш#Объявляем переменную ассоциативного массива без значения
объявить -А сотрудник
#Назначаем значение отдельно, определяя индекс
сотрудник [ 'идентификатор' ] '=' '78564'
сотрудник [ 'имя' ] '=' «Доступные актеры»
сотрудник [ 'почта' ] '=' 'ГЕНЕРАЛЬНЫЙ ДИРЕКТОР'
сотрудник [ 'зарплата' ] '=' 300000
#Распечатываем два значения массива
эхо «Идентификатор сотрудника: ${employee[id]} '
эхо 'Имя сотрудника: ${сотрудник[имя]} '
#Объявляем ассоциативный массив со значениями
объявить -А курс '=' ( [ код ] '=' 'CSE-206' [ имя ] '=' 'Объектно-ориентированного программирования' [ кредитный_час ] '=' 2.0 )
#Добавить новую строку
эхо
#Распечатываем два значения второго массива
эхо 'Название курса: ${курс[имя]} '
эхо «Кредитный час: ${курс[credit_hour]} '
Выход :
Следующий вывод появляется после выполнения сценария. Здесь печатаются конкретные значения ассоциативного массива с указанием значения ключа или индекса:
Подсчитайте значения массива
Метод подсчета суммы элементов числового массива и ассоциативного массива показан в следующем скрипте:
#!/бин/баш#Объявляем числовой массив
объявить -а имена '=' ( 'Майкл' 'Дэйвид' 'Александр' 'Томас' 'Роберт' 'Ричард' ) ;
эхо «Длина числового массива равна ${#names[@]} '
#Объявляем ассоциативный массив
объявить -А курс '=' ( [ код ] '=' 'CSE-206' [ имя ] '=' 'Объектно-ориентированного программирования' [ кредитный_час ] '=' 2.0 )
эхо «Длина ассоциативного массива равна ${#курс[@]} '
Выход :
Следующий вывод появляется после выполнения сценария. Длина числового и ассоциативного массивов указана здесь:
Чтение значений массива с помощью цикла
Способ чтения всех значений числового массива и ассоциативного массива с помощью цикла for показан в следующем скрипте:
#!/бин/баш#Объявляем числовой массив
объявить -а книги '=' ( «Руководства по написанию сценариев оболочки» «Биш Баш Бош!» «Быстро выучите Bash» )
#Распечатываем значения числового массива
эхо «Значения числового массива:»
для в в ' ${книги[@]} '
делать
эхо ' $в '
сделанный
эхо
#Объявляем ассоциативный массив со значениями
объявить -А клиенты '=' (
[ идентификатор ] '=' 'Н-5623'
[ имя ] '=' 'Мистер. Анаф'
[ адрес ] '=' «6/А, Дханмонди, Дакка».
[ телефон ] '=' '+8801975642312' )
#Распечатываем значения ассоциативного массива
эхо «Значения ассоциативного массива:»
для к в ' ${!клиенты[@]} '
делать
эхо ' $к => ${клиенты[$k]} '
сделанный
Выход :
Следующий вывод появляется после выполнения сценария. Здесь значения числового массива и пары ключ-значение ассоциативного массива выводятся на вывод:
Прочитайте конкретный диапазон значений массива
Значения массива определенного диапазона индексов показаны в следующем скрипте. В скрипте определен числовой массив из четырех элементов. Два значения массива из второго индекса массива печатаются позже.
#!/бин/баш#Объявляем числовой массив
объявить -а торты '=' ( 'Шоколадный торт' 'Ванильный торт' 'Краснобархатный пирог' 'клубничный пирог' )
#Распечатываем конкретные значения массива
эхо «Второй и третий элементы значений массива:»
печать '%s\n' ' ${торты[@]:1:2} '
Выход :
Следующий вывод появляется после выполнения сценария. Второе и третье значения массива — «Ванильный торт» и «Красный бархатный торт», которые выводятся на выходе:
Вставьте значения массива
Метод добавления нескольких значений в конец массива показан в следующем скрипте. Основной массив «$books» содержит три элемента, и два элемента добавляются в конец массива «$books».
#!/бин/баш#Объявляем числовой массив
объявить -а книги '=' ( «Руководства по написанию сценариев оболочки» «Биш Баш Бош!» «Быстро выучите Bash» )
#Распечатываем значения массива перед вставкой
эхо 'Значения массива:'
печать '%s\n' ' ${книги[@]} '
эхо
книги '=' ( ' ${книги[@]} ' «Библия командной строки Linux и сценариев оболочки» «Расширенное руководство по написанию сценариев Bash от Менделя Купера» )
#Распечатываем значения массива после вставки
эхо «Значения массива после вставки двух значений:»
печать '%s\n' ' ${книги[@]} '
Выход :
Следующий вывод появляется после выполнения сценария. Значения массива до и после вставки новых значений выводятся на вывод:
Считайте содержимое файла в массив
Создайте текстовый файл с именем «fruits.txt» со следующим содержимым, чтобы протестировать сценарий этого примера:
фрукты.txt
мангоДжекфрут
Ананас
Апельсин
Банан
В следующем скрипте содержимое файла сохраняется в массиве с именем «$data». Здесь каждая строка файла сохраняется как каждый элемент массива. Далее значения массива печатаются.
#!/бин/баш#Читаем имя файла от пользователя
читать -п «Введите имя файла:» имя файла
если [ -ф $имя_файла ]
затем
#Читаем содержимое файла в массив'
данные '=' ( ` кот ' $имя_файла ' ` )
эхо «Содержимое файла приведено ниже:»
#Читаем файл построчно
для линия в ' ${данные[@]} '
делать
эхо $строка
сделанный
быть
Выход :
Следующий вывод появляется после выполнения сценария. Вывод, отображаемый командой «cat», и вывод сценария аналогичны, поскольку доступ к одному и тому же файлу осуществляется командой «cat» и сценарием:
Объедините значения массива
Новый массив создается путем объединения значений нескольких массивов. В следующем скрипте определяются два числовых массива строк. Затем создается новый массив путем объединения значений этих массивов.
#!/бин/баш#Объявляем первый массив
объявить -а имяСписок1 '=' ( 'Майкл' 'Дэйвид' 'Александр' 'Томас' )
эхо «Первые значения массива:»
печать '%s, ' ${nameList1[@]}
эхо
#Объявляем второй массив
объявить -а имяСписок2 '=' ( 'Роберт' 'Ричард' )
эхо «Значения второго массива:»
печать '%s, ' ${nameList2[@]}
эхо
#Создаем новый массив, объединив два массива
комбинированный_массив '=' ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )
эхо «Объединенные значения массива:»
печать '%s, ' ${combined_array[@]}
эхо
Выход :
Следующий вывод появляется после выполнения сценария. Здесь на выходе выводятся значения трех массивов. Третий массив содержит все значения первого и второго массива:
Измените значения массива
Метод обновления одного или нескольких значений массива путем упоминания индекса показан в следующем скрипте:
#!/бин/баш#Объявляем первый массив
объявить -а список имен '=' ( 'Майкл' 'Дэйвид' 'Александр' 'Томас' )
эхо 'Значения массива:'
печать '%s, ' ${nameList[@]}
эхо
#Обновляем второе значение массива
список имен [ 1 ] '=' 'Роберт'
эхо «Значения массива после обновления:»
печать '%s, ' ${nameList[@]}
эхо
Выход :
Следующий вывод появляется после выполнения сценария. Значения основного массива и обновленных массивов выводятся на вывод:
Удалить значения массива
Команда «unset» используется для удаления определенного элемента или всех элементов массива. В следующем скрипте удаляется второй элемент массива.
#!/бин/баш#Объявляем числовой массив
объявить -а книги '=' ( «Руководства по написанию сценариев оболочки» «Биш Баш Бош!» «Быстро выучите Bash» )
#Распечатываем значения массива перед удалением
эхо 'Значения массива:'
печать '%s\n' ' ${книги[@]} '
эхо
#Удаляем второй элемент
не установлен книги [ 1 ]
#Распечатываем значения массива после удаления
эхо «Значения массива после удаления второго значения:»
печать '%s\n' ' ${книги[@]} '
Выход :
Следующий вывод появляется после выполнения сценария. Значения основного массива и значения массива после удаления одного значения выводятся на вывод:
Найдите и замените значения массива
В следующем сценарии конкретное значение массива заменяется другим значением, если значение поиска, определенное в шаблоне, соответствует любому значению массива «$names».
#!/бин/баш#Объявляем первый массив
объявить -а имена '=' ( 'Майкл' 'Дэйвид' 'Александр' 'Томас' )
#Распечатываем исходные значения массива
эхо «Исходные значения массива:»
печать '%s\n' ' ${names[@]} '
#Генерируем строку после замены значений массива
обновленный_массив '=' ${names[@]/Александр/Ричард}
#Распечатываем значения массива после замены
эхо 'Значения массива после замены:'
печать '%s\n' ' ${updated_array[@]} '
Выход :
Следующий вывод появляется после выполнения сценария. Значения основного массива и значения массива после замены значения выводятся на вывод:
Используйте массив в качестве аргумента функции
В следующем сценарии переменная массива передается в качестве аргумента функции, а значения этого массива выводятся позже.
#!/бин/баш#Объявляем массив чисел
объявить -а цифры '=' ( 10 6 Четыре пять 13 8 )
#Определяем функцию, которая будет принимать значение аргумента
функция ( )
{
#Читаем первый аргумент
цифры '=' 1 доллар
#Распечатываем значения массива
эхо 'Значения массива:'
печать '%d\n' ' ${numbers[@]} '
}
#Вызов функции с массивом в качестве аргумента
функция ' ${numbers[@]} '
Выход :
После выполнения скрипта появится следующий вывод:
Возврат массива из функции
В следующем скрипте функция вызывается с четырьмя числовыми аргументами. Создается массив со значениями аргументов, и этот массив возвращается из функции вызывающей стороне.
#!/бин/баш#Определяем функцию, которая считывает четыре значения аргументов
функция ( )
{
#Читаем значения аргументов
цифры '=' ( 1 доллар 2 доллара 3 доллара 4 доллара )
#Вернем массив
эхо ' ${numbers[@]} '
}
#Вызов функции с тремя аргументами
return_val =$ ( функция 78 Четыре пять 90 23 )
#Сохраняем возвращаемое значение в массиве
читать -а на одной <<< $return_val
#Распечатываем значения возвращенного массива
эхо «Значения массива:»
для в в ' ${num[@]} '
делать
эхо ' $в '
сделанный
Выход :
После выполнения скрипта появится следующий вывод:
Сделать массив пустым
Следующий скрипт показывает метод опустошения массива с помощью команды «unset». Общее количество значений массива выводится до и после опустошения массива.
#!/бин/баш#Объявляем массив чисел
объявить -а цифры '=' ( 10 6 Четыре пять 13 80 )
эхо «Количество значений массива: ${#numbers[@]} '
#Сделаем массив пустым
не установлен цифры
эхо «Количество значений массива после того, как массив стал пустым: ${#numbers[@]} '
Выход :
Следующий вывод появляется после выполнения сценария. Количество элементов массива стало равным 0 после того, как массив стал пустым:
Заключение
В этом руководстве показаны различные методы объявления, доступа, изменения и удаления переменных массива в сценарии Bash с использованием 15 простых примеров. Мы надеемся, что это руководство поможет пользователям Bash подробно узнать об использовании массивов Bash.