Основы работы с массивами Сценарии оболочки | Набор 2 (Использование петель)
Опубликовано: 16 Февраля, 2022
It is recommended to go through Array Basics Shell Scripting | Set-1
Introduction
Suppose you want to repeat a particular task so many times then it is a better to use loops. Mostly all languages provides the concept of loops. In Bourne Shell there are two types of loops i.e for
loop andwhile
loop.
Чтобы напечатать статический массив в Bash
1. Используя цикл while
${#arr[@]}
is used to find the size of Array.
# !/bin/bash # To declare static Array arr=(1 12 31 4 5) i=0 # Loop upto size of array # starting from index, i=0 while [ $i -lt ${ #arr[@]} ] do # To print index, ith # element echo ${arr[$i]} # Increment the i = i + 1 i=` expr $i + 1` done |
Выход:
1 2 3 4 5
2. By Using for-loop
# !/bin/bash # To declare static Array arr=(1 2 3 4 5) # loops iterate through a # set of values until the # list (arr) is exhausted for i in "${arr[@]}" do # access each element # as $i echo $i done |
Выход:
1 2 3 4 5
Чтобы прочитать элементы массива во время выполнения, а затем распечатать массив.
1. Using While-loop
# !/bin/bash # To input array at run # time by using while-loop # echo -n is used to print # message without new line echo -n "Enter the Total numbers :" read n echo "Enter numbers :" i=0 # Read upto the size of # given array starting from # index, i=0 while [ $i -lt $n ] do # To input from user read a[$i] # Increment the i = i + 1 i=` expr $i + 1` done # To print array values # starting from index, i=0 echo "Output :" i=0 while [ $i -lt $n ] do echo ${a[$i]} # To increment index # by 1, i=i+1 i=` expr $i + 1` done |
Выход:
Введите общее количество: 3 Введите цифры: 1 3 5 Выход : 1 3 5
2. Using for-loop
# !/bin/bash # To input array at run # time by using for-loop echo -n "Enter the Total numbers :" read n echo "Enter numbers:" i=0 # Read upto the size of # given array starting # from index, i=0 while [ $i -lt $n ] do # To input from user read a[$i] # To increment index # by 1, i=i+1 i=` expr $i + 1` done # Print the array starting # from index, i=0 echo "Output :" for i in "${a[@]}" do # access each element as $i echo $i done |
Выход:
Введите общее количество: 3 Введите цифры: 1 3 5 Выход : 1 3 5