Как использовать массивы в Bash

Углубленное изучение условных операторов Bash Изучение

Если вы хотите использовать несколько данных с помощью одной переменной на любом языке программирования, вы должны использовать переменные массива. Список данных может быть назначен и использован с помощью переменной массива. Bash — это слабо типизированный язык, который не требует определения какого-либо типа данных для объявления переменной. Объявление массива в bash немного отличается от других стандартных языков программирования. В bash можно объявить два типа массива. Числовой массив и ассоциативный массив. Если индекс массива является числовым, то он называется числовым массивом, а если индекс массива является строкой, он называется ассоциативным массивом. Как вы можете объявить числовой массив, ассоциативный массив и перебирать элементы массива с помощью цикла for, описано с примерами в этом руководстве.

Пример 1: Объявление числового массива

Индекс массива по умолчанию является числовым, и все значения принимаются как строковое значение. Здесь объявлен простой числовой массив из 5 строковых значений. Команда echo используется здесь для печати значений каждого массива отдельно. Если вы хотите распечатать все значения массива одной командой echo, тогда в индексе массива должен использоваться символ «*„. Создайте файл bash с помощью следующего сценария, который показывает два способа объявления массива в сценарии bash.

#!/bin/bash
MyArray=( HTML Javascript CSS JQuery Bootstrap )

# Print 5 values individually

echo «———-Print 5 values individually—————«
echo ${MyArray[0]}
echo ${MyArray[1]}
echo ${MyArray[2]}
echo ${MyArray[3]}
echo ${MyArray[4]}

#Print all values by using *
echo «——————Print all values——————-«
echo ${MyArray[*]}

Выход:

Следующий вывод появится после выполнения вышеуказанного сценария.

Индекс массива по умолчанию является числовым, и все значения принимаются как строковое значение

Пример 2: Объявление ассоциативного массива

Каждый индекс массива нужно объявить отдельно в ассоциативном массиве. Создайте файл bash со следующим сценарием, чтобы узнать об использовании ассоциативного массива в bash. В следующих примерах объявляется ассоциативный массив из 4 элементов. Значения массива можно распечатать, используя каждый индекс отдельно, как в предыдущем примере. Только индексы ассоциативного массива могут быть напечатаны с помощью символа «!» и символы «@».

#!/bin/bash

# Associative array declaration
declare -A MyArr

# Value Initialization
MyArr=( [mark]=79 [john]=93 [ella]=87 [mila]=83 )

# Print values
echo ${MyArr[mark]}
echo ${MyArr[john]}
echo ${MyArr[ella]}
echo ${MyArr[mila]}

#Print indexes

echo ${!MyArr[@]}

Выход:

Читайте также:  5 самых сложных вопросов по программированию из недавних собеседований FAANG

Следующий вывод появится после выполнения вышеуказанного сценария.

Каждый индекс массива нужно объявить отдельно в ассоциативном массиве

Пример 3: Чтение значений массива с использованием цикла for

Общее количество элементов любого массива bash можно подсчитать, используя символы «#» и «*», показанные в первой части следующего примера. Создайте файл bash со следующим сценарием, чтобы узнать способ чтения значений массива с помощью цикла. Цикл For обычно используется для перебора значений массива. Вы также можете читать значения массива и индексы массива отдельно, используя цикл for. В следующем примере используются разные циклы для чтения индексов массива, значений массива и того и другого.

#!/bin/bash

# Associative array declaration
declare -A MyArr

# Value Initialization
MyArr=( [os]=Windows [web]=PHP [db]=Oracle )

echo «Total number of elements=${#MyArr[*]}«

echo «Array values are»
for value in ${MyArr[@]}
do
echo $value
done

echo «Array indexes are»
for key in ${!MyArr[@]}
do
echo $key
done

echo «Array values and indexes:»
for key in ${!MyArr[*]}
do
echo «$key => ${MyArr[$key]}«
done

Вывод:

следующий вывод появится после выполнения вышеуказанного сценария.

Общее количество элементов любого массива bash можно подсчитать, используя символы

Пример 4: Добавить элемент в массив

Новый элемент можно добавить в массив по-разному. В этом примере показан способ добавления одного или нескольких элементов с помощью сокращенного оператора (+ =). Создайте файл bash со следующим сценарием, чтобы узнать, как новый элемент может быть вставлен в массив.

#!/bin/bash

# Declare a numeric array
declare -a MyArr

# Initialize array with two elements
MyArr=( Ubuntu CentOS )

# Print total number of elements
echo «Total number of elements of the current array=${#MyArr[*]}«

# Add one element
MyArr+=(Fedora)

# Print total number of elements after adding one element
echo «Total number of elements after adding one element=${#MyArr[*]}«

# Add two elements
MyArr+=(RedHat LinuxMint)

# Print total number of elements after adding two elements
echo «Total number of elements after adding two elements=${#MyArr[*]}«

# Print all elements of the array
echo «Array elements are:»
echo «${MyArr[@]}«

Выход:

Следующий вывод появится после выполнения вышеуказанного сценария.

Новый элемент можно добавить в массив по-разному

Пример 5: Удалить элемент из массива

Команда unset используется для удаления одного или всех элементов из массива. Создайте файл bash со следующим сценарием, чтобы узнать, как удалить все без исключения элементы из числового массива.

#!/bin/bash
# Declare a numeric array
declare -a MyArr

# Initialize array with two elements
MyArr=(Dell HP Lenavo Acer Asus Avita )

# Print total number of elements
echo «Total number of elements of the current array=${#MyArr[*]}«

# Print array values before delete
echo «Array values before delete:»
echo «${MyArr[@]}«

# Delete fourth element
unset MyArr[3]

# Print total number of elements after deleting an element
echo «Total number of elements after deleting one element=${#MyArr[*]}«

# Print array values after delete
echo «Array values after deleting one element:»
echo «${MyArr[@]}«

# Delete all elements
unset MyArr

# Print array values after deleting all elements
echo «Array values after deleting all elements:»
echo «${MyArr[@]}«

Выход:

Следующий вывод появится после выполнения вышеуказанного сценария.

Команда unset используется для удаления одного или всех элементов из массива

Пример 6: Распечатать строковое значение из нескольких слов

Значение массива необходимо заключить в двойные кавычки (» «), чтобы добавить строковое значение из нескольких слов в массив. Создайте файл bash с помощью следующего сценария, в котором связанный массив инициализирован строковыми значениями нескольких слов.

#!/bin/bash

# Declare an associative array
declare -A MyArr

# Initialize the array with the string value of multiple words
MyArr=([cse-101]=«Computer Fundamental» [cse-207]=«Java Programming» [cse-312]=«Web Programming»)

# Print the array values of multiple words
echo «Array values are:»
for val in «${MyArr[@]}«do
echo $val
done

Выход:

Следующий вывод появится после выполнения вышеуказанного сценария.

Значение массива необходимо заключить в двойные кавычки

Заключение

Массив используется в программировании для многих целей. В этом руководстве были показаны некоторые общие и очень простые варианты использования массива в bash. После выполнения приведенных выше примеров базовая концепция массива bash будет понятна для пользователей bash, и они смогут соответствующим образом использовать массив bash в своих сценариях.

Оцените статью
bestprogrammer.ru
Добавить комментарий