Како манипулисати и контролисати податке помоћу Басх Арраи-а

Kako Manipulisati I Kontrolisati Podatke Pomocu Bash Arrai A



Променљива низа се користи у било ком програмском језику за складиштење више вредности помоћу индекса. Индекс низа може бити број или стринг. Низ који садржи нумерички индекс назива се „нумерички низ“, а низ који садржи вредност стринга као индекс назива се „асоцијативни низ“. И нумерички и асоцијативни низови се могу креирати у Басху. Методе манипулације и контроле података Басх низа су детаљно приказане помоћу 15 примера у овом туторијалу.

Листа садржаја:

  1. Дефинишите низ помоћу индекса
  2. Дефинишите низ са више вредности
  3. Дефинишите асоцијативни низ
  4. Преброј вредности низа
  5. Прочитајте вредности низа по петљи
  6. Прочитајте посебне вредности низа
  7. Уметните вредности низа
  8. Прочитајте садржај датотеке у низ
  9. Комбинујте вредности низа
  10. Измените вредности низа
  11. Уклоните вредности низа
  12. Претражите и замените вредности низа
  13. Користите низ као аргумент функције
  14. Вратите низ из функције
  15. Учините низ празним

Дефинишите низ помоћу индекса

Метод декларисања низа помињањем секвенцијалних или несеквентних нумеричких индекса је приказан у следећој скрипти. Овај тип низа се назива нумерички низ. Овде је низ „$боокс” креиран дефинисањем три узастопна индекса, а низ „$продуцтс” је креиран дефинисањем четири не-секвенцијална индекса. Све вредности оба низа се штампају помоћу функције “принтф”.







#!/бин/басх

#Дефиниши индекс низа у секвенцијалном редоследу

књиге [ 0 ] = 'Учење басх Схелл-а'

књиге [ 1 ] = „Операције сајбер безбедности са басх-ом“

књиге [ 2 ] = „Професионални савети за Басх командну линију“

одјек „Све вредности првог низа:“

принтф '%с\н' ' ${боокс[@]} '

#Дефиниши индекс низа у редоследу који није секвенцијалан

производи [ 10 ] = 'Хемијска оловка'

производи [ 5 ] = 'Оловка'

производи [ 9 ] = 'Рулар'

производи [ 4 ] = „Папир величине А4“

одјек

одјек „Све вредности другог низа:“

принтф '%с\н' ' ${продуцтс[@]} '

Излаз :



Следећи излаз се појављује након извршавања скрипте. Вредности оба низа се штампају у излазу. Редослед индекса се одржава у време штампања за низ несеквентних индекса:



  п1





Иди на врх

Дефинишите низ са више вредности

Нумерички низ са више вредности може се декларисати помоћу команде „децларе“ са опцијом -а или без коришћења команде „децларе“. У следећој скрипти, први низ је декларисан помоћу команде „децларе“, а други низ је креиран без коришћења команде „децларе“.



#!/бин/басх

#Декларирајте нумерички низ помоћу кључне речи 'децларе'

прогласити имена = ( 'Мајкл' 'Давид' 'Александар' 'Томас' 'Роберт' 'Рицхард' )

#Одштампајте вредности низа

одјек „Све вредности првог низа:“

принтф '%с\н' ' ${намес[@]} '

#Декларирајте нумерички низ без кључне речи 'децларе'

књиге = ( 'Упутства за схелл скриптовање' 'Бисх Басх Босх!' „Брзо научи Басх“ )

#Додај нови ред

одјек

#Одштампајте вредности низа

одјек „Све вредности другог низа:“

принтф '%с\н' ' ${боокс[@]} '

Излаз :

Следећи излаз се појављује након извршавања скрипте. Вредности оба низа су одштампане овде:

  п2

Иди на врх

Дефинишите асоцијативни низ

Низ који садржи вредност стринга као индекс назива се асоцијативни низ. Опција -А се користи са командом „децларе“ у Басху за креирање асоцијативног Басх низа. У следећој скрипти, први асоцијативни низ је декларисан тако што се индекси помињу одвојено, а други низ се декларише спомињањем свих парова кључ/вредност у време декларације низа.

#!/бин/басх

#Објавите асоцијативну променљиву низа без вредности

прогласити запослени

#Доделите вредност засебно дефинисањем индекса

запослени [ 'ид' ] = '78564'

запослени [ 'име' ] = 'Глумци доступни'

запослени [ 'пошта' ] = 'ДИРЕКТОР'

запослени [ 'плата' ] = 300000

#Одштампајте две вредности низа

одјек 'Број запосленог: ${емплоиее[ид]} '

одјек 'Име запосленог: ${емплоиее[наме]} '

#Објавите асоцијативни низ са вредностима

прогласити наравно = ( [ код ] = 'ЦСЕ-206' [ име ] = 'Објектно оријентисано програмирање' [ кредит_сат ] = 2.0 )

#Додај нови ред

одјек

#Одштампајте две вредности низа другог низа

одјек „Назив курса: ${цоурсе[наме]} '

одјек „Кредитни сат: ${цоурсе[цредит_хоур]} '

Излаз :

Следећи излаз се појављује након извршавања скрипте. Одређене вредности асоцијативног низа се штампају овде помињањем кључа или вредности индекса:

  п3

Иди на врх

Преброј вредности низа

Метод пребројавања укупних елемената нумеричког низа и асоцијативног низа је приказан у следећој скрипти:

#!/бин/басх

#Објавите нумерички низ

прогласити имена = ( 'Мајкл' 'Давид' 'Александар' 'Томас' 'Роберт' 'Рицхард' ) ;

одјек „Дужина нумеричког низа је ${#намес[@]} '

#Објавите асоцијативни низ

прогласити наравно = ( [ код ] = 'ЦСЕ-206' [ име ] = 'Објектно оријентисано програмирање' [ кредит_сат ] = 2.0 )

одјек „Дужина асоцијативног низа је ${#цоурсе[@]} '

Излаз :

Следећи излаз се појављује након извршавања скрипте. Дужина низа нумеричких и асоцијативних низова је одштампана овде:

  п4

Иди на врх

Прочитајте вредности низа по петљи

Метод читања свих вредности нумеричког низа и асоцијативног низа помоћу петље „фор“ приказан је у следећој скрипти:

#!/бин/басх

#Објавите нумерички низ

прогласити књиге = ( „Упутства за схелл скриптовање“ 'Биш Баш Бош!' „Брзо научи Басх“ )

#Одштампајте вредности нумеричког низа

одјек „Вредности нумеричког низа су:“

за ин ин ' ${боокс[@]} '

урадите

одјек ' $ин '

Готово

одјек

#Објавите асоцијативни низ са вредностима

прогласити клијентима = (

[ ид ] = 'Х-5623'

[ име ] = 'Господин. Ахнаф'

[ адреса ] = '6/А, Дханмонди, Дака.'

[ телефон ] = '+8801975642312' )

#Одштампајте вредности асоцијативног низа

одјек „Вредности асоцијативног низа су:“

за к ин ' ${!цлиентс[@]} '

урадите

одјек ' => ${цлиентс[$к]} '

Готово

Излаз :

Следећи излаз се појављује након извршавања скрипте. Овде се вредности нумеричког низа и парови кључ-вредност асоцијативног низа штампају у излазу:

  п5

Иди на врх

Прочитајте посебан опсег вредности низа

Вредности низа одређеног опсега индекса приказане су у следећој скрипти. У скрипти је дефинисан нумерички низ од четири елемента. Две вредности низа из другог индекса низа се штампају касније.

#!/бин/басх

#Објавите нумерички низ

прогласити колачи = ( 'Чоколадна торта' 'торта од ваниле' 'Црвени сомот колач' 'торта од јагода' )

#Одштампајте одређене вредности низа

одјек „Други и трећи елементи низа вредности су:“

принтф '%с\н' ' ${цакес[@]:1:2} '

Излаз :

Следећи излаз се појављује након извршавања скрипте. Друга и трећа вредност низа су „Ванилла Цаке“ и „Ред Велвет Цаке“ које се штампају у излазу:

  п6

Иди на врх

Убаците вредност низа

Метода додавања више вредности на крају низа приказана је у следећој скрипти. Главни низ који је „$боокс“ садржи три елемента и два елемента се додају на крај низа „$боокс“.

#!/бин/басх

#Објавите нумерички низ

прогласити књиге = ( „Упутства за схелл скриптовање“ 'Биш Баш Бош!' „Брзо научи Басх“ )

#Одштампајте вредности низа пре уметања

одјек „Вредности низа:“

принтф '%с\н' ' ${боокс[@]} '

одјек

књиге = ( ' ${боокс[@]} ' „Линук командна линија и Библија за схелл скриптовање“ „Водич за напредне Басх скрипте од Мендела Купера“ )

#Одштампајте вредности низа након уметања

одјек „Вредности низа након уметања две вредности:“

принтф '%с\н' ' ${боокс[@]} '

Излаз :

Следећи излаз се појављује након извршавања скрипте. Вредности низа пре и после уметања нових вредности се штампају у излазу:

  п7

Иди на врх

Прочитајте садржај датотеке у низ

Направите текстуалну датотеку под називом „фруитс.ткт“ са следећим садржајем да бисте тестирали скрипту овог примера:

фруитс.ткт

Манго

Јацкфруит

Ананас

Оранге

Банана

У следећој скрипти, садржај датотеке се чува у низу под називом „$дата“. Овде се свака линија датотеке чува као сваки елемент низа. Затим се штампају вредности низа.

#!/бин/басх

#Прочитајте име датотеке од корисника

читати -п 'Унесите име датотеке:' назив документа

ако [ $филенаме ]

онда

#Прочитајте садржај датотеке у низ'

података = ( ` мачка ' $филенаме ' ` )

одјек „Садржај датотеке је дат у наставку:“

#Прочитајте датотеку ред по ред

за линија ин ' ${дата[@]} '

урадите

одјек $лине

Готово

бити

Излаз :

Следећи излаз се појављује након извршавања скрипте. Излаз који је приказан командом “цат” и излаз скрипте су слични јер се истој датотеци приступа команди “цат” и скрипти:

  п8

Иди на врх

Комбинујте вредности низа

Нови низ се креира комбиновањем вредности више низова. У следећој скрипти дефинисана су два нумеричка низа стрингова. Затим се креира нови низ комбиновањем вредности ових низова.

#!/бин/басх

#Декларисајте први низ

прогласити намеЛист1 = ( 'Мајкл' 'Давид' 'Александар' 'Томас' )

одјек „Прве вредности низа су:“

принтф '%с,' ${намеЛист1[@]}

одјек

#Објавите други низ

прогласити намеЛист2 = ( 'Роберт' 'Рицхард' )

одјек „Друге вредности низа су:“

принтф '%с,' ${намеЛист2[@]}

одјек

#Креирајте нови низ комбиновањем два низа

комбиновани_низ = ( ' ${намеЛист1[@]} ' ' ${намеЛист2[@]} ' )

одјек „Комбиноване вредности низа су:“

принтф '%с,' ${цомбинед_арраи[@]}

одјек

Излаз :

Следећи излаз се појављује након извршавања скрипте. Овде се вредности три низа штампају у излазу. Трећи низ садржи све вредности првог и другог низа:

  п9

Иди на врх

Измените вредности низа

Метод ажурирања једне или више вредности низа помињањем индекса је приказан у следећој скрипти:

#!/бин/басх

#Декларисајте први низ

прогласити намеЛист = ( 'Мајкл' 'Давид' 'Александар' 'Томас' )

одјек „Вредности низа:“

принтф '%с,' ${намеЛист[@]}

одјек

#Ажурирајте 2. вредност низа

намеЛист [ 1 ] = 'Роберт'

одјек „Вредности низа након ажурирања:“

принтф '%с,' ${намеЛист[@]}

одјек

Излаз :

Следећи излаз се појављује након извршавања скрипте. Вредности главног низа и ажурираних низова се штампају у излазу:

  п10

Уклоните вредности низа

Команда „унсет“ се користи за уклањање одређеног елемента или свих елемената низа. У следећој скрипти, други елемент низа је уклоњен.

#!/бин/басх

#Објавите нумерички низ

прогласити књиге = ( „Упутства за схелл скриптовање“ 'Биш Баш Бош!' „Брзо научи Басх“ )

#Одштампајте вредности низа пре уклањања

одјек „Вредности низа:“

принтф '%с\н' ' ${боокс[@]} '

одјек

#Уклоните 2. елемент

унсет књиге [ 1 ]

#Одштампајте вредности низа након уклањања

одјек „Вредности низа након уклањања 2. вредности:“

принтф '%с\н' ' ${боокс[@]} '

Излаз :

Следећи излаз се појављује након извршавања скрипте. Вредности главног низа и вредности низа након уклањања једне вредности се штампају у излазу:

  п11

Иди на врх

Претражите и замените вредности низа

У следећој скрипти, одређена вредност низа је замењена другом вредношћу ако се вредност претраге која је дефинисана у обрасцу подудара са било којом вредношћу низа „$намес“.

#!/бин/басх

#Декларисајте први низ

прогласити имена = ( 'Мајкл' 'Давид' 'Александар' 'Томас' )

#Одштампајте оригиналне вредности низа

одјек „Оригиналне вредности низа:“

принтф '%с\н' ' ${намес[@]} '

#Генериши стринг након замене вредности низа

упдатед_арраи = ${намес[@]/Александар/Ричард}

#Одштампајте вредности низа након замене

одјек „Вредности низа након замене:“

принтф '%с\н' ' ${упдатед_арраи[@]} '

Излаз :

Следећи излаз се појављује након извршавања скрипте. Вредности главног низа и вредности низа након замене вредности се штампају у излазу:

  п12

Иди на врх

Користите низ као аргумент функције

У следећој скрипти, променљива низа се прослеђује као аргумент функције и вредности тог низа се штампају касније.

#!/бин/басх

#Декларисајте низ бројева

прогласити бројевима = ( 10 6 Четири, пет 13 8 )

#Дефинишите функцију која ће узети вредност аргумента

фунц ( )

{

#Прочитајте први аргумент

бројевима = $1

#Одштампајте вредности низа

одјек „Вредности низа:“

принтф '%д\н' ' ${нумберс[@]} '

}

#Позовите функцију са низом као аргументом

фунц ' ${нумберс[@]} '

Излаз :

Следећи излаз се појављује након извршавања скрипте:

  п13

Иди на врх

Врати низ из функције

У следећој скрипти, функција се позива са четири нумеричка аргумента. Низ се креира са вредностима аргумената и тај низ се враћа из функције позиваоцу.

#!/бин/басх

#Дефинишите функцију која чита четири вредности аргумената

фунц ( )

{

#Прочитајте вредности аргумената

бројевима = ( $1 $2 $3 $4 )

#Врати низ

одјек ' ${нумберс[@]} '

}

#Позовите функцију са три аргумента

ретурн_вал =$ ( фунц 78 Четири, пет 90 23 )

#Спремите повратну вредност у низ

читати на једном <<< $ретурн_вал

#Одштампајте вредности враћеног низа

одјек „Вредности низа су:“

за ин ин ' ${нум[@]} '

урадите

одјек ' $ин '

Готово

Излаз :

Следећи излаз се појављује након извршавања скрипте:

Иди на врх

Учините низ празним

Следећа скрипта показује метод прављења низа празним помоћу команде „унсет“. Укупан број вредности низа се штампа пре и након што се низ учини празним.

#!/бин/басх

#Декларисајте низ бројева

прогласити бројевима = ( 10 6 Четири, пет 13 80 )

одјек „Број вредности низа: ${#нумберс[@]} '

#Учините низ празним

унсет бројевима

одјек „Број вредности низа након што је низ празан: ${#нумберс[@]} '

Излаз :

Следећи излаз се појављује након извршавања скрипте. Број елемената низа постао је 0 након што је низ био празан:

  п15

Иди на врх

Закључак

Различите методе декларисања, приступа, модификације и уклањања променљивих низа у Басх скрипти су приказане у овом водичу користећи 15 једноставних примера. Надамо се да ће овај водич помоћи Басх корисницима да детаљно упознају употребу Басх низа.