- Tukuyin ang isang Array sa pamamagitan ng Index
- Tukuyin ang isang Array na may Maramihang Halaga
- Tukuyin ang isang Associative Array
- Bilangin ang Array Values
- Basahin ang Array Values ayon sa Loop
- Basahin ang Mga Partikular na Halaga ng Array
- Ipasok ang Array Values
- Magbasa ng Nilalaman ng File sa Array
- Pagsamahin ang Array Values
- Baguhin ang Array Values
- Alisin ang Array Values
- Hanapin at Palitan ang Array Values
- Gumamit ng Array bilang isang Function Argument
- Ibalik ang Array mula sa Function
- Gawing Walang laman ang Array
Tukuyin ang isang Array sa pamamagitan ng Index
Ang paraan ng pagdedeklara ng array sa pamamagitan ng pagbanggit ng sequential o nonsequential numeric index ay ipinapakita sa sumusunod na script. Ang ganitong uri ng array ay tinatawag na numeric array. Dito, ang array na '$books' ay nilikha sa pamamagitan ng pagtukoy sa tatlong sequential index at ang '$products' array ay nilikha sa pamamagitan ng pagtukoy ng apat na hindi sequential index. Ang lahat ng mga halaga ng parehong mga array ay naka-print gamit ang 'printf' function.
#!/bin/bash
#Define array index sa sequential order
mga libro [ 0 ] = 'Pag-aaral ng bash Shell'
mga libro [ 1 ] = 'Cybersecurity Ops na may bash'
mga libro [ 2 ] = 'Bash Command Line Pro Tips'
echo 'Lahat ng value ng unang array:'
printf '%s\n' ' ${mga aklat[@]} '
#Define array index sa hindi sunud-sunod na pagkakasunud-sunod
mga produkto [ 10 ] = 'Pulat'
mga produkto [ 5 ] = 'Lapis'
mga produkto [ 9 ] = 'Rular'
mga produkto [ 4 ] = 'A4 Size na Papel'
echo
echo 'Lahat ng value ng pangalawang array:'
printf '%s\n' ' ${products[@]} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang mga halaga ng parehong array ay naka-print sa output. Ang pagkakasunud-sunod ng index ay pinananatili sa oras ng pag-print para sa hanay ng mga hindi sunud-sunod na index:
Tukuyin ang isang Array na may Maramihang Halaga
Ang isang numeric array na may maraming mga halaga ay maaaring ideklara gamit ang 'declare' command na may -a na opsyon o nang hindi gumagamit ng 'declare' command. Sa sumusunod na script, ang unang array ay idineklara gamit ang 'declare' command at ang pangalawang array ay nilikha nang hindi gumagamit ng 'declare' command.
#!/bin/bash
#Declare a numeric array with the 'declare' keyword
magpahayag -a mga pangalan = ( 'Michael' 'David' 'Alexander' 'Thomas' 'Robert' 'Richard' )
#I-print ang mga halaga ng array
echo 'Lahat ng value ng unang array:'
printf '%s\n' ' ${pangalan[@]} '
#Declare a numeric array without 'declare' keyword
mga libro = ( 'Mga Tutorial sa Shell Scripting' 'Bish Bash Bosh!' 'Alamin ang Bash Mabilis' )
#Magdagdag ng bagong linya
echo
#I-print ang mga halaga ng array
echo 'Lahat ng value ng pangalawang array:'
printf '%s\n' ' ${mga aklat[@]} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang mga halaga ng parehong mga array ay naka-print dito:
Tukuyin ang isang Associative Array
Ang array na naglalaman ng string value bilang index ay tinatawag na associative array. Ang -A na opsyon ay ginagamit sa 'declare' command sa Bash upang lumikha ng isang associative Bash array. Sa sumusunod na script, ang unang associative array ay idineklara sa pamamagitan ng pagbanggit sa mga index nang hiwalay at ang pangalawang array ay idineklara sa pamamagitan ng pagbanggit sa lahat ng key-value pairs sa oras ng array declaration.
#!/bin/bash#Declare an associative array variable na walang value
magpahayag -A empleado
#Magtalaga ng halaga nang hiwalay sa pamamagitan ng pagtukoy sa index
empleado [ 'id' ] = '78564'
empleado [ 'pangalan' ] = 'Actors Available'
empleado [ 'post' ] = 'CEO'
empleado [ 'suweldo' ] = 300000
#Mag-print ng dalawang value ng array
echo 'ID ng empleyado: ${employee[id]} '
echo 'Pangalan ng Empleyado: ${employee[name]} '
#Declare isang associative array na may mga value
magpahayag -A kurso = ( [ code ] = 'CSE-206' [ pangalan ] = 'Object Oriented Programming' [ oras_kredito ] = 2.0 )
#Magdagdag ng bagong linya
echo
#Mag-print ng dalawang array value ng pangalawang array
echo 'Pangalan ng Kurso: ${course[name]} '
echo 'Oras ng Credit: ${course[credit_hour]} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang mga partikular na value ng associative array ay naka-print dito sa pamamagitan ng pagbanggit sa key o index value:
Bilangin ang Array Values
Ang paraan ng pagbibilang ng kabuuang elemento ng numeric array at ang associative array ay ipinapakita sa sumusunod na script:
#!/bin/bash#Declare a numeric array
magpahayag -a mga pangalan = ( 'Michael' 'David' 'Alexander' 'Thomas' 'Robert' 'Richard' ) ;
echo 'Ang haba ng numeric array ay ${#pangalan[@]} '
#Declare isang associative array
magpahayag -A kurso = ( [ code ] = 'CSE-206' [ pangalan ] = 'Object Oriented Programming' [ oras_kredito ] = 2.0 )
echo 'Ang haba ng associative array ay ${#course[@]} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang haba ng array ng numeric at associative arrays ay naka-print dito:
Basahin ang Array Values ayon sa Loop
Ang paraan ng pagbabasa ng lahat ng value ng isang numeric array at isang associative array gamit ang 'for' loop ay ipinapakita sa sumusunod na script:
#!/bin/bash#Declare a numeric array
magpahayag -a mga libro = ( 'Mga Tutorial sa Shell Scripting' 'Bish Bash Bosh!' 'Alamin ang Bash Mabilis' )
#Print ang numeric array values
echo 'Ang mga halaga ng numeric array ay:'
para sa sa sa ' ${mga aklat[@]} '
gawin
echo ' $in '
tapos na
echo
#Declare isang associative array na may mga value
magpahayag -A mga kliyente = (
[ id ] = 'H-5623'
[ pangalan ] = 'Ginoo. Ahnaf'
[ address ] = '6/A, Dhanmondi, Dhaka.'
[ telepono ] = '+8801975642312' )
#Print ang associative array values
echo 'Ang mga nauugnay na halaga ng array ay:'
para sa k sa ' ${!kliyente[@]} '
gawin
echo ' $k => ${clients[$k]} '
tapos na
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Dito, naka-print sa output ang mga value ng numeric array at ang key-value pairs ng associative array:
Basahin ang Partikular na Saklaw ng Mga Halaga ng Array
Ang mga halaga ng array ng partikular na hanay ng mga index ay ipinapakita sa sumusunod na script. Sa script, tinukoy ang isang numeric na hanay ng apat na elemento. Dalawang array value mula sa pangalawang index ng array ang ipi-print sa ibang pagkakataon.
#!/bin/bash#Declare a numeric array
magpahayag -a mga cake = ( 'Chocolate Cake' 'Vanilla Cake' 'Red Velvet Cake' 'strawberry cake' )
#I-print ang partikular na mga halaga ng array
echo 'Ang ika-2 at ika-3 elemento ng mga halaga ng array ay:'
printf '%s\n' ' ${cake[@]:1:2} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang pangalawa at pangatlong value ng array ay 'Vanilla Cake' at 'Red Velvet Cake' na naka-print sa output:
Ipasok ang Array Values
Ang paraan ng pagdaragdag ng maramihang mga halaga sa dulo ng array ay ipinapakita sa sumusunod na script. Ang pangunahing array na '$books' ay naglalaman ng tatlong elemento at dalawang elemento ang idinaragdag sa dulo ng '$books' array.
#!/bin/bash#Declare a numeric array
magpahayag -a mga libro = ( 'Mga Tutorial sa Shell Scripting' 'Bish Bash Bosh!' 'Alamin ang Bash Mabilis' )
#Print ang array values bago ipasok
echo 'Mga halaga ng array:'
printf '%s\n' ' ${mga aklat[@]} '
echo
mga libro = ( ' ${mga aklat[@]} ' 'Linux Command Line at Shell Scripting Bible' 'Advanced Bash Scripting Guide ni Mendel Cooper' )
#I-print ang mga halaga ng array pagkatapos ipasok
echo 'Mga halaga ng array pagkatapos magpasok ng dalawang halaga:'
printf '%s\n' ' ${mga aklat[@]} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang mga halaga ng array bago at pagkatapos ng pagpasok ng mga bagong halaga ay naka-print sa output:
Basahin ang Nilalaman ng File sa Array
Gumawa ng text file na pinangalanang 'fruits.txt' na may sumusunod na nilalaman upang subukan ang script ng halimbawang ito:
prutas.txt
MangoLangka
Pinya
Kahel
saging
Sa sumusunod na script, ang nilalaman ng isang file ay naka-imbak sa isang array na pinangalanang '$data'. Dito, ang bawat linya ng file ay naka-imbak bilang bawat elemento ng array. Susunod, ang mga halaga ng array ay naka-print.
#!/bin/bash#Basahin ang filename mula sa user
basahin -p 'Ilagay ang filename:' filename
kung [ -f $filename ]
pagkatapos
#Basahin ang nilalaman ng file sa isang array'
datos = ( ` pusa ' $filename ' ` )
echo 'Ang nilalaman ng file ay ibinigay sa ibaba:'
#Basahin ang file sa bawat linya
para sa linya sa ' ${data[@]} '
gawin
echo $linya
tapos na
maging
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang output na ipinapakita ng command na 'cat' at ang output ng script ay magkatulad dahil ang parehong file ay ina-access ng command na 'cat' at ang script:
Pagsamahin ang Array Values
Ang isang bagong array ay nilikha sa pamamagitan ng pagsasama-sama ng mga halaga ng maramihang mga array. Sa sumusunod na script, dalawang numeric na array ng mga string ang tinukoy. Pagkatapos, ang isang bagong array ay nilikha sa pamamagitan ng pagsasama-sama ng mga halaga ng mga array na ito.
#!/bin/bash#Ipahayag ang unang hanay
magpahayag -a Listahan ng pangalan1 = ( 'Michael' 'David' 'Alexander' 'Thomas' )
echo 'Ang mga unang halaga ng array ay:'
printf '%s,' ${nameList1[@]}
echo
#Ipahayag ang pangalawang hanay
magpahayag -a Listahan ng pangalan2 = ( 'Robert' 'Richard' )
echo 'Ang pangalawang halaga ng array ay:'
printf '%s,' ${nameList2[@]}
echo
#Gumawa ng bagong array sa pamamagitan ng pagsasama ng dalawang array
pinagsamang_array = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )
echo 'Ang pinagsamang mga halaga ng array ay:'
printf '%s,' ${combined_array[@]}
echo
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Dito, ang mga halaga ng tatlong array ay naka-print sa output. Ang ikatlong array ay naglalaman ng lahat ng mga halaga ng una at ang pangalawang array:
Baguhin ang Array Values
Ang paraan ng pag-update ng isa o higit pang mga halaga ng array sa pamamagitan ng pagbanggit sa index ay ipinapakita sa sumusunod na script:
#!/bin/bash#Ipahayag ang unang hanay
magpahayag -a Listahan ng pangalan = ( 'Michael' 'David' 'Alexander' 'Thomas' )
echo 'Mga halaga ng array:'
printf '%s,' ${nameList[@]}
echo
#I-update ang 2nd value ng array
Listahan ng pangalan [ 1 ] = 'Robert'
echo 'Mga halaga ng array pagkatapos ng pag-update:'
printf '%s,' ${nameList[@]}
echo
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang mga halaga ng pangunahing array at ang na-update na mga array ay naka-print sa output:
Alisin ang Array Values
Ang command na 'unset' ay ginagamit upang alisin ang partikular na elemento o lahat ng elemento ng array. Sa sumusunod na script, ang pangalawang elemento ng array ay tinanggal.
#!/bin/bash#Declare a numeric array
magpahayag -a mga libro = ( 'Mga Tutorial sa Shell Scripting' 'Bish Bash Bosh!' 'Alamin ang Bash Mabilis' )
#Print ang array values bago alisin
echo 'Mga halaga ng array:'
printf '%s\n' ' ${mga aklat[@]} '
echo
#Alisin ang 2nd element
hindi nakatakda mga libro [ 1 ]
#I-print ang mga halaga ng array pagkatapos alisin
echo 'Mga halaga ng array pagkatapos alisin ang ika-2 halaga:'
printf '%s\n' ' ${mga aklat[@]} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang mga halaga ng pangunahing array at ang mga halaga ng array pagkatapos alisin ang isang halaga ay naka-print sa output:
Hanapin at Palitan ang Array Values
Sa sumusunod na script, ang partikular na halaga ng array ay papalitan ng isa pang value kung ang halaga ng paghahanap na tinukoy sa pattern ay tumugma sa anumang halaga ng array na '$names'.
#!/bin/bash#Ipahayag ang unang hanay
magpahayag -a mga pangalan = ( 'Michael' 'David' 'Alexander' 'Thomas' )
#I-print ang orihinal na mga halaga ng array
echo 'Mga orihinal na halaga ng array:'
printf '%s\n' ' ${pangalan[@]} '
#Bumuo ng string pagkatapos palitan ang mga halaga ng array
updated_array = ${names[@]/Alexander/Richard}
#I-print ang mga halaga ng array pagkatapos palitan
echo 'Mga halaga ng array pagkatapos palitan:'
printf '%s\n' ' ${updated_array[@]} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang mga halaga ng pangunahing array at ang mga halaga ng array pagkatapos palitan ang isang halaga ay naka-print sa output:
Gumamit ng Array bilang isang Function Argument
Sa sumusunod na script, isang array variable ang ipinapasa bilang function argument at ang mga value ng array na iyon ay ipi-print sa ibang pagkakataon.
#!/bin/bash#Ipahayag ang isang hanay ng mga numero
magpahayag -a numero = ( 10 6 Apat. Lima 13 8 )
#Tukuyin ang isang function na kukuha ng isang halaga ng argumento
func ( )
{
#Basahin ang unang argumento
numero = $1
#I-print ang mga halaga ng array
echo 'Mga halaga ng array:'
printf '%d\n' ' ${numbers[@]} '
}
#Tawagan ang function na may array bilang isang argumento
func ' ${numbers[@]} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script:
Magbalik ng Array mula sa Function
Sa sumusunod na script, ang function ay tinatawag na may apat na numeric na argumento. Ang isang array ay nilikha gamit ang mga halaga ng argumento at ang array na iyon ay ibinalik mula sa function patungo sa tumatawag.
#!/bin/bash#Tukuyin ang isang function na nagbabasa ng apat na halaga ng argumento
func ( )
{
#Basahin ang mga halaga ng argumento
numero = ( $1 $2 $3 $4 )
#Ibalik ang array
echo ' ${numbers[@]} '
}
#Tawagan ang function na may tatlong argumento
return_val =$ ( func 78 Apat. Lima 90 23 )
#I-store ang return value sa isang array
basahin -a sa isa <<<< $return_val
#Print ang mga halaga ng ibinalik na array
echo 'Ang mga halaga ng array ay:'
para sa sa sa ' ${num[@]} '
gawin
echo ' $in '
tapos na
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script:
Gawing Walang laman ang Array
Ipinapakita ng sumusunod na script ang paraan ng paggawa ng array na walang laman gamit ang command na 'unset'. Ang kabuuang bilang ng mga halaga ng array ay naka-print bago at pagkatapos gawing walang laman ang array.
#!/bin/bash#Ipahayag ang isang hanay ng mga numero
magpahayag -a numero = ( 10 6 Apat. Lima 13 80 )
echo 'Mga bilang ng mga halaga ng array: ${#numbers[@]} '
#Gawing walang laman ang array
hindi nakatakda numero
echo 'Bilang ng mga halaga ng array pagkatapos gawing walang laman ang array: ${#numbers[@]} '
Output :
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang bilang ng mga elemento ng array ay naging 0 pagkatapos gawing walang laman ang array:
Konklusyon
Ang iba't ibang paraan ng pagdedeklara, pag-access, pagbabago, at pag-alis ng mga variable ng array sa Bash script ay ipinapakita sa tutorial na ito gamit ang 15 simpleng halimbawa. Umaasa kami na ang tutorial na ito ay makakatulong sa mga gumagamit ng Bash na malaman ang mga gamit ng Bash array nang detalyado.