Основы работы с массивами Сценарии оболочки | Набор 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=0while [ $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 exhaustedfor i in "${arr[@]}"do # access each element # as $i echo $idone |
Выход:
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 lineecho -n "Enter the Total numbers :"read necho "Enter numbers :"i=0 # Read upto the size of # given array starting from# index, i=0while [ $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=0echo "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 necho "Enter numbers:"i=0 # Read upto the size of # given array starting # from index, i=0while [ $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=0echo "Output :" for i in "${a[@]}"do # access each element as $i echo $i done |
Выход:
Введите общее количество: 3 Введите цифры: 1 3 5 Выход : 1 3 5