- Дефинишите низ помоћу индекса
- Дефинишите низ са више вредности
- Дефинишите асоцијативни низ
- Преброј вредности низа
- Прочитајте вредности низа по петљи
- Прочитајте посебне вредности низа
- Уметните вредности низа
- Прочитајте садржај датотеке у низ
- Комбинујте вредности низа
- Измените вредности низа
- Уклоните вредности низа
- Претражите и замените вредности низа
- Користите низ као аргумент функције
- Вратите низ из функције
- Учините низ празним
Дефинишите низ помоћу индекса
Метод декларисања низа помињањем секвенцијалних или несеквентних нумеричких индекса је приказан у следећој скрипти. Овај тип низа се назива нумерички низ. Овде је низ „$боокс” креиран дефинисањем три узастопна индекса, а низ „$продуцтс” је креиран дефинисањем четири не-секвенцијална индекса. Све вредности оба низа се штампају помоћу функције “принтф”.
#!/бин/басх
#Дефиниши индекс низа у секвенцијалном редоследу
књиге [ 0 ] = 'Учење басх Схелл-а'
књиге [ 1 ] = „Операције сајбер безбедности са басх-ом“
књиге [ 2 ] = „Професионални савети за Басх командну линију“
одјек „Све вредности првог низа:“
принтф '%с\н' ' ${боокс[@]} '
#Дефиниши индекс низа у редоследу који није секвенцијалан
производи [ 10 ] = 'Хемијска оловка'
производи [ 5 ] = 'Оловка'
производи [ 9 ] = 'Рулар'
производи [ 4 ] = „Папир величине А4“
одјек
одјек „Све вредности другог низа:“
принтф '%с\н' ' ${продуцтс[@]} '
Излаз :
Следећи излаз се појављује након извршавања скрипте. Вредности оба низа се штампају у излазу. Редослед индекса се одржава у време штампања за низ несеквентних индекса:
Дефинишите низ са више вредности
Нумерички низ са више вредности може се декларисати помоћу команде „децларе“ са опцијом -а или без коришћења команде „децларе“. У следећој скрипти, први низ је декларисан помоћу команде „децларе“, а други низ је креиран без коришћења команде „децларе“.
#!/бин/басх
#Декларирајте нумерички низ помоћу кључне речи 'децларе'
прогласити -а имена = ( 'Мајкл' 'Давид' 'Александар' 'Томас' 'Роберт' 'Рицхард' )
#Одштампајте вредности низа
одјек „Све вредности првог низа:“
принтф '%с\н' ' ${намес[@]} '
#Декларирајте нумерички низ без кључне речи 'децларе'
књиге = ( 'Упутства за схелл скриптовање' 'Бисх Басх Босх!' „Брзо научи Басх“ )
#Додај нови ред
одјек
#Одштампајте вредности низа
одјек „Све вредности другог низа:“
принтф '%с\н' ' ${боокс[@]} '
Излаз :
Следећи излаз се појављује након извршавања скрипте. Вредности оба низа су одштампане овде:
Дефинишите асоцијативни низ
Низ који садржи вредност стринга као индекс назива се асоцијативни низ. Опција -А се користи са командом „децларе“ у Басху за креирање асоцијативног Басх низа. У следећој скрипти, први асоцијативни низ је декларисан тако што се индекси помињу одвојено, а други низ се декларише спомињањем свих парова кључ/вредност у време декларације низа.
#!/бин/басх#Објавите асоцијативну променљиву низа без вредности
прогласити -А запослени
#Доделите вредност засебно дефинисањем индекса
запослени [ 'ид' ] = '78564'
запослени [ 'име' ] = 'Глумци доступни'
запослени [ 'пошта' ] = 'ДИРЕКТОР'
запослени [ 'плата' ] = 300000
#Одштампајте две вредности низа
одјек 'Број запосленог: ${емплоиее[ид]} '
одјек 'Име запосленог: ${емплоиее[наме]} '
#Објавите асоцијативни низ са вредностима
прогласити -А наравно = ( [ код ] = 'ЦСЕ-206' [ име ] = 'Објектно оријентисано програмирање' [ кредит_сат ] = 2.0 )
#Додај нови ред
одјек
#Одштампајте две вредности низа другог низа
одјек „Назив курса: ${цоурсе[наме]} '
одјек „Кредитни сат: ${цоурсе[цредит_хоур]} '
Излаз :
Следећи излаз се појављује након извршавања скрипте. Одређене вредности асоцијативног низа се штампају овде помињањем кључа или вредности индекса:
Преброј вредности низа
Метод пребројавања укупних елемената нумеричког низа и асоцијативног низа је приказан у следећој скрипти:
#!/бин/басх#Објавите нумерички низ
прогласити -а имена = ( 'Мајкл' 'Давид' 'Александар' 'Томас' 'Роберт' 'Рицхард' ) ;
одјек „Дужина нумеричког низа је ${#намес[@]} '
#Објавите асоцијативни низ
прогласити -А наравно = ( [ код ] = 'ЦСЕ-206' [ име ] = 'Објектно оријентисано програмирање' [ кредит_сат ] = 2.0 )
одјек „Дужина асоцијативног низа је ${#цоурсе[@]} '
Излаз :
Следећи излаз се појављује након извршавања скрипте. Дужина низа нумеричких и асоцијативних низова је одштампана овде:
Прочитајте вредности низа по петљи
Метод читања свих вредности нумеричког низа и асоцијативног низа помоћу петље „фор“ приказан је у следећој скрипти:
#!/бин/басх#Објавите нумерички низ
прогласити -а књиге = ( „Упутства за схелл скриптовање“ 'Биш Баш Бош!' „Брзо научи Басх“ )
#Одштампајте вредности нумеричког низа
одјек „Вредности нумеричког низа су:“
за ин ин ' ${боокс[@]} '
урадите
одјек ' $ин '
Готово
одјек
#Објавите асоцијативни низ са вредностима
прогласити -А клијентима = (
[ ид ] = 'Х-5623'
[ име ] = 'Господин. Ахнаф'
[ адреса ] = '6/А, Дханмонди, Дака.'
[ телефон ] = '+8801975642312' )
#Одштампајте вредности асоцијативног низа
одјек „Вредности асоцијативног низа су:“
за к ин ' ${!цлиентс[@]} '
урадите
одјек ' $к => ${цлиентс[$к]} '
Готово
Излаз :
Следећи излаз се појављује након извршавања скрипте. Овде се вредности нумеричког низа и парови кључ-вредност асоцијативног низа штампају у излазу:
Прочитајте посебан опсег вредности низа
Вредности низа одређеног опсега индекса приказане су у следећој скрипти. У скрипти је дефинисан нумерички низ од четири елемента. Две вредности низа из другог индекса низа се штампају касније.
#!/бин/басх#Објавите нумерички низ
прогласити -а колачи = ( 'Чоколадна торта' 'торта од ваниле' 'Црвени сомот колач' 'торта од јагода' )
#Одштампајте одређене вредности низа
одјек „Други и трећи елементи низа вредности су:“
принтф '%с\н' ' ${цакес[@]:1:2} '
Излаз :
Следећи излаз се појављује након извршавања скрипте. Друга и трећа вредност низа су „Ванилла Цаке“ и „Ред Велвет Цаке“ које се штампају у излазу:
Убаците вредност низа
Метода додавања више вредности на крају низа приказана је у следећој скрипти. Главни низ који је „$боокс“ садржи три елемента и два елемента се додају на крај низа „$боокс“.
#!/бин/басх#Објавите нумерички низ
прогласити -а књиге = ( „Упутства за схелл скриптовање“ 'Биш Баш Бош!' „Брзо научи Басх“ )
#Одштампајте вредности низа пре уметања
одјек „Вредности низа:“
принтф '%с\н' ' ${боокс[@]} '
одјек
књиге = ( ' ${боокс[@]} ' „Линук командна линија и Библија за схелл скриптовање“ „Водич за напредне Басх скрипте од Мендела Купера“ )
#Одштампајте вредности низа након уметања
одјек „Вредности низа након уметања две вредности:“
принтф '%с\н' ' ${боокс[@]} '
Излаз :
Следећи излаз се појављује након извршавања скрипте. Вредности низа пре и после уметања нових вредности се штампају у излазу:
Прочитајте садржај датотеке у низ
Направите текстуалну датотеку под називом „фруитс.ткт“ са следећим садржајем да бисте тестирали скрипту овог примера:
фруитс.ткт
МангоЈацкфруит
Ананас
Оранге
Банана
У следећој скрипти, садржај датотеке се чува у низу под називом „$дата“. Овде се свака линија датотеке чува као сваки елемент низа. Затим се штампају вредности низа.
#!/бин/басх#Прочитајте име датотеке од корисника
читати -п 'Унесите име датотеке:' назив документа
ако [ -ф $филенаме ]
онда
#Прочитајте садржај датотеке у низ'
података = ( ` мачка ' $филенаме ' ` )
одјек „Садржај датотеке је дат у наставку:“
#Прочитајте датотеку ред по ред
за линија ин ' ${дата[@]} '
урадите
одјек $лине
Готово
бити
Излаз :
Следећи излаз се појављује након извршавања скрипте. Излаз који је приказан командом “цат” и излаз скрипте су слични јер се истој датотеци приступа команди “цат” и скрипти:
Комбинујте вредности низа
Нови низ се креира комбиновањем вредности више низова. У следећој скрипти дефинисана су два нумеричка низа стрингова. Затим се креира нови низ комбиновањем вредности ових низова.
#!/бин/басх#Декларисајте први низ
прогласити -а намеЛист1 = ( 'Мајкл' 'Давид' 'Александар' 'Томас' )
одјек „Прве вредности низа су:“
принтф '%с,' ${намеЛист1[@]}
одјек
#Објавите други низ
прогласити -а намеЛист2 = ( 'Роберт' 'Рицхард' )
одјек „Друге вредности низа су:“
принтф '%с,' ${намеЛист2[@]}
одјек
#Креирајте нови низ комбиновањем два низа
комбиновани_низ = ( ' ${намеЛист1[@]} ' ' ${намеЛист2[@]} ' )
одјек „Комбиноване вредности низа су:“
принтф '%с,' ${цомбинед_арраи[@]}
одјек
Излаз :
Следећи излаз се појављује након извршавања скрипте. Овде се вредности три низа штампају у излазу. Трећи низ садржи све вредности првог и другог низа:
Измените вредности низа
Метод ажурирања једне или више вредности низа помињањем индекса је приказан у следећој скрипти:
#!/бин/басх#Декларисајте први низ
прогласити -а намеЛист = ( 'Мајкл' 'Давид' 'Александар' 'Томас' )
одјек „Вредности низа:“
принтф '%с,' ${намеЛист[@]}
одјек
#Ажурирајте 2. вредност низа
намеЛист [ 1 ] = 'Роберт'
одјек „Вредности низа након ажурирања:“
принтф '%с,' ${намеЛист[@]}
одјек
Излаз :
Следећи излаз се појављује након извршавања скрипте. Вредности главног низа и ажурираних низова се штампају у излазу:
Уклоните вредности низа
Команда „унсет“ се користи за уклањање одређеног елемента или свих елемената низа. У следећој скрипти, други елемент низа је уклоњен.
#!/бин/басх#Објавите нумерички низ
прогласити -а књиге = ( „Упутства за схелл скриптовање“ 'Биш Баш Бош!' „Брзо научи Басх“ )
#Одштампајте вредности низа пре уклањања
одјек „Вредности низа:“
принтф '%с\н' ' ${боокс[@]} '
одјек
#Уклоните 2. елемент
унсет књиге [ 1 ]
#Одштампајте вредности низа након уклањања
одјек „Вредности низа након уклањања 2. вредности:“
принтф '%с\н' ' ${боокс[@]} '
Излаз :
Следећи излаз се појављује након извршавања скрипте. Вредности главног низа и вредности низа након уклањања једне вредности се штампају у излазу:
Претражите и замените вредности низа
У следећој скрипти, одређена вредност низа је замењена другом вредношћу ако се вредност претраге која је дефинисана у обрасцу подудара са било којом вредношћу низа „$намес“.
#!/бин/басх#Декларисајте први низ
прогласити -а имена = ( 'Мајкл' 'Давид' 'Александар' 'Томас' )
#Одштампајте оригиналне вредности низа
одјек „Оригиналне вредности низа:“
принтф '%с\н' ' ${намес[@]} '
#Генериши стринг након замене вредности низа
упдатед_арраи = ${намес[@]/Александар/Ричард}
#Одштампајте вредности низа након замене
одјек „Вредности низа након замене:“
принтф '%с\н' ' ${упдатед_арраи[@]} '
Излаз :
Следећи излаз се појављује након извршавања скрипте. Вредности главног низа и вредности низа након замене вредности се штампају у излазу:
Користите низ као аргумент функције
У следећој скрипти, променљива низа се прослеђује као аргумент функције и вредности тог низа се штампају касније.
#!/бин/басх#Декларисајте низ бројева
прогласити -а бројевима = ( 10 6 Четири, пет 13 8 )
#Дефинишите функцију која ће узети вредност аргумента
фунц ( )
{
#Прочитајте први аргумент
бројевима = $1
#Одштампајте вредности низа
одјек „Вредности низа:“
принтф '%д\н' ' ${нумберс[@]} '
}
#Позовите функцију са низом као аргументом
фунц ' ${нумберс[@]} '
Излаз :
Следећи излаз се појављује након извршавања скрипте:
Врати низ из функције
У следећој скрипти, функција се позива са четири нумеричка аргумента. Низ се креира са вредностима аргумената и тај низ се враћа из функције позиваоцу.
#!/бин/басх#Дефинишите функцију која чита четири вредности аргумената
фунц ( )
{
#Прочитајте вредности аргумената
бројевима = ( $1 $2 $3 $4 )
#Врати низ
одјек ' ${нумберс[@]} '
}
#Позовите функцију са три аргумента
ретурн_вал =$ ( фунц 78 Четири, пет 90 23 )
#Спремите повратну вредност у низ
читати -а на једном <<< $ретурн_вал
#Одштампајте вредности враћеног низа
одјек „Вредности низа су:“
за ин ин ' ${нум[@]} '
урадите
одјек ' $ин '
Готово
Излаз :
Следећи излаз се појављује након извршавања скрипте:
Учините низ празним
Следећа скрипта показује метод прављења низа празним помоћу команде „унсет“. Укупан број вредности низа се штампа пре и након што се низ учини празним.
#!/бин/басх#Декларисајте низ бројева
прогласити -а бројевима = ( 10 6 Четири, пет 13 80 )
одјек „Број вредности низа: ${#нумберс[@]} '
#Учините низ празним
унсет бројевима
одјек „Број вредности низа након што је низ празан: ${#нумберс[@]} '
Излаз :
Следећи излаз се појављује након извршавања скрипте. Број елемената низа постао је 0 након што је низ био празан:
Закључак
Различите методе декларисања, приступа, модификације и уклањања променљивих низа у Басх скрипти су приказане у овом водичу користећи 15 једноставних примера. Надамо се да ће овај водич помоћи Басх корисницима да детаљно упознају употребу Басх низа.