Како користити индексне низове у Басху

Kako Koristiti Indeksne Nizove U Bashu



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

Шта су индексни низови

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

< име_низа > = ( елемент1 елемент2 елемент3 ... )

Овде је име_низа име низа, а елемент1, елемент2, елемент3 и тако даље су вредности које се чувају у низу. Вредности су раздвојене размаком и имајте на уму да такође можете користити команду децларе за креирање низа.







Како користити индексиране низове у Басху

Да бисте креирали низ индекса у басх-у, једноставно морате да декларишете променљиву и доделите јој вредности затворене у заградама и раздвојене размацима. Ево неколико примера који показују како се користе индексирани низови у басх-у:



Промена редоследа листе у Басху

Ако имате листу ставки у одређеном редоследу и желите да их промените на другачији начин. Можете да користите низ индекса да бисте креирали нову наруџбу за ставке, на следећи начин:



#!/бин/басх
ставке = ( 'манго' 'ананас' 'јагода' 'трешња' 'Грожђе' )
ред = ( 4 2 0 3 1 )
за и ин ' ${ордер[@]} '
урадите
одјек ${итемс[$и]}
Готово

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





Филтрирање листе у Басху

Ако имате листу ставки и желите да филтрирате одређене ставке на основу услова. Можете да користите низ индекса да бисте пратили индексе ставки које испуњавају услов, на следећи начин:



#!/бин/басх
ставке = ( 'манго' 'ананас' 'јагода' 'трешња' 'Грожђе' )
индекси = ( )

за и ин ' ${!итемс[@]} '
урадите
ако [ [ ${итемс[$и]} == * 'р' * ] ]
онда
индекси+= ( )
бити
Готово

за и ин ' ${индицес[@]} '
урадите
одјек ${итемс[$и]}
Готово

У овом примеру креирамо низ под називом ставке са пет елемената. Такође креирамо празан низ индекса који се зове индекси. Затим прелазимо кроз низ ставки и проверавамо да ли свака ставка садржи слово „р“. Ако јесте, додајемо његов индекс у низ индекса. Коначно, пролазимо кроз низ индекса и користимо сваку вредност као индекс да бисмо преузели одговарајућу ставку из низа ставки и одштампали је.

Бројање појављивања у Басх-у

Ако имате листу ставки и желите да избројите број појављивања сваке ставке, можете користити низ индекса да бисте пратили бројање и ево примера за демонстрацију:

#!/бин/басх
ставке = ( 'манго' 'ананас' 'јагода' 'трешња' 'Грожђе' )
рачуна = ( )

за и ин ' ${!итемс[@]} '
урадите
ако [ [ ! ' ${цоунтс[@]} ' =~ ' ${итемс[$и]} ' ] ]
онда
броји+= ( ' ${итемс[$и]} 1' )
друго
индекс =$ ( одјек ' ${цоунтс[@]} ' | тр '' '\н' | дршка '^ ${итемс[$и]} ' | са )
цоунт =$ ( одјек ' ${цоунтс[$индек-1]} ' | резати '' -ф2 )
рачуна [ $индек - 1 ] = ' ${итемс[$и]} $((број+1) )'
бити
Готово

за цоунт ин ' ${цоунтс[@]} '
урадите
одјек $цоунт
Готово

Прво иницијализује низ под називом „итемс“ са листом стрингова. Затим декларише празан низ под називом „цоунтс“. Фор петља је креирана за понављање за сваку ставку у низу „итемс“ и за сваку ставку проверава да ли већ постоји у низу „цоунтс“.

Ако не постоји, додаје ставку и број 1 у низ „цоунтс“. Ако постоји, повећава број те ставке у низу „цоунтс“. Коначно, за штампање сваке ставке и њеног одговарајућег бројања користи се друга фор петља. Излаз овог кода ће одштампати број сваке ставке у низу „итемс“, са дупликатима који се рачунају одвојено.

Ажурирање листе у Басху

Ако имате листу ставки и желите да додате или избришете ставке са ње, можете користити низ индекса за њу и ево примера за демонстрацију:

#!/бин/басх
ставке = ( 'манго' 'ананас' 'јагода' 'трешња' 'Грожђе' )

# Додавање новог елемента у индексирани низ на индексу 2
ставке [ 6 ] = 'наранџаста'
# Брисање елемента са индексом 2 из индексираног низа
унсет ставке [ 2 ]

# Штампање ажурираног низа
одјек ' ${итемс[@]} '

У скрипти је индексирани низ „итемс“ дефинисан са пет почетних елемената. Да бисте додали нови елемент, вредност се једноставно додељује жељеном индексу помоћу синтаксног низа[индекс]=вредност. У овој скрипти, „наранџаста“ се додаје индексу 6 низа. Да избришемо елемент, користимо наредбу унсет праћену индексом елемента који желимо да уклонимо. У овом случају, елемент са индексом 2 („Јагода“) се брише. Ажурирани низ се затим штампа помоћу синтаксе „${арраи[@]}“, која проширује цео низ.

Закључак

Индексирани низови су згодна структура басх-а која вам омогућава да чувате и манипулишете више вредности користећи једну променљиву. Разумевањем синтаксе и употребе индексираних низова, можете писати ефикасније и делотворније басх скрипте.