Na-arụ ọrụ na Arrays na Linux Shell Scripting - Nkebi 8
Anyị enweghị ike iche n'echiche asụsụ mmemme na-enweghị echiche nke nhazi. Ọ baghị uru ka esi etinye ha n'ọrụ n'asụsụ dị iche iche. Kama usoro nhazi na-enyere anyị aka n'ịkwado data, nke yiri ya ma ọ bụ dị iche, n'okpuru otu aha ihe atụ.
Ebe a ka anyị na-eche banyere shei scripting, isiokwu a ga-enyere gị aka na-egwu gburugburu na ụfọdụ shei scripts nke na-eji nke a echiche nke arrays.
Usoro mmalite na ojiji
Site na ụdị bash ọhụrụ, ọ na-akwado arrays nwere otu akụkụ. Enwere ike ịkọwapụta nke ọma site na kwupụtashell-builtin.
declare -a var
Mana ọ dịghị mkpa ikwupụta ụdị mgbanwe dị ka n'elu. Anyị nwere ike itinye ihe ndị dị n'otu n'otu iji hazie ozugbo dịka ndị a.
var[XX]=<value>
ebe 'XX' na-egosi nhazi nhazi. Iji debanye aha nhazi ihe na-eji syntax bracket curly, ya bụ.
${var[XX]}
Mara: Nhazi nhazi na-amalite mgbe niile na 0.
Ụzọ ọzọ dị mma isi bido n'usoro dum bụ site n'iji ụzọ mpakọ atọ dị ka egosiri n'okpuru.
var=( element1 element2 element3 . . . elementN )
A ka nwere ụzọ ọzọ e si ekenye ụkpụrụ n'usoro. Ụzọ mmalite a bụ akụkụ nke usoro akọwara mbụ.
array=( [XX]=<value> [XX]=<value> . . . )
Anyị nwekwara ike ịgụ/kenye ụkpụrụ n'usoro n'oge igbu oge site na iji agụ shell-builtin.
read -a array
Ugbu a na-emezu nkwupụta a dị n'elu n'ime edemede, ọ na-echere ntinye ụfọdụ. Anyị kwesịrị ịnye ihe ndị dị n'usoro kewapụrụ site na oghere (ọ bụghị nlọghachi ụgbọ ala). Mgbe ịbanyechara ụkpụrụ, pịa tinye ka ịkwụsị.
Iji gafere site n'usoro ihe anyị nwekwara ike iji maka loop.
for i in “${array[@]}” do #access each element as $i. . . done
Edemede na-esonụ na-achịkọta ọdịnaya nke ngalaba a.
#!/bin/bash array1[0]=one array1[1]=1 echo ${array1[0]} echo ${array1[1]} array2=( one two three ) echo ${array2[0]} echo ${array2[2]} array3=( [9]=nine [11]=11 ) echo ${array3[9]} echo ${array3[11]} read -a array4 for i in "${array4[@]}" do echo $i done exit 0
Ọtụtụ ọrụ eriri ọkọlọtọ na-arụ ọrụ n'usoro. Lelee edemede nlele na-esote nke na-arụ ọrụ ụfọdụ n'usoro (gụnyere arụmọrụ eriri).
#!/bin/bash array=( apple bat cat dog elephant frog ) #print first element echo ${array[0]} echo ${array:0} #display all elements echo ${array[@]} echo ${array[@]:0} #display all elements except first one echo ${array[@]:1} #display elements in a range echo ${array[@]:1:4} #length of first element echo ${#array[0]} echo ${#array} #number of elements echo ${#array[*]} echo ${#array[@]} #replacing substring echo ${array[@]//a/A} exit 0
Nke a bụ mmepụta ewepụtara na-eme ihe ederede dị n'elu.
apple apple apple bat cat dog elephant frog apple bat cat dog elephant frog bat cat dog elephant frog bat cat dog elephant 5 5 6 6 Apple bAt cAt dog elephAnt frog
Echere m na ọ dịghị ihe ọ bụla dị mkpa na ịkọwa edemede a dị n'elu n'ụzọ zuru ezu dịka ọ na-akọwa onwe ya. Ọ bụrụ na ọ dị mkpa, m ga-enyefe otu akụkụ na usoro isiokwu a naanị na nhazi eriri.
Ngbanwe iwu na-ekenye mmepụta nke iwu ma ọ bụ ọtụtụ iwu n'ime ọnọdụ ọzọ. N'ebe a n'usoro nhazi a, anyị nwere ike itinye mmepụta nke iwu dị ka ihe dị iche iche nke nhazi. Syntax dị ka ndị a.
array=( $(command) )
Site na ndabara, a na-agbanye ọdịnaya dị na mmepụta iwu nke oghere ndị ọcha kewapụrụ n'usoro dị ka ihe n'otu n'otu. Edemede a na-edepụta ọdịnaya nke ndekọ aha, nke bụ faịlụ nwere ikike 755.
#!/bin/bash ERR=27 EXT=0 if [ $# -ne 1 ]; then echo "Usage: $0 <path>" exit $ERR fi if [ ! -d $1 ]; then echo "Directory $1 doesn't exists" exit $ERR fi temp=( $(find $1 -maxdepth 1 -type f) ) for i in "${temp[@]}" do perm=$(ls -l $i) if [ `expr ${perm:0:10} : "-rwxr-xr-x"` -eq 10 ]; then echo ${i##*/} fi done exit $EXT
Anyị nwere ike ịnọchite anya matriks nwere akụkụ abụọ n'ụzọ dị mfe site na iji nhazi akụkụ 1. Na ahiri isi usoroa na-eji nke nta nke nta na-echekwa ihe nnọchite anya n'ahịrị ọ bụla nke matriks n'usoro n'usoro n'usoro. Maka matrix mXn, enwere ike dee usoro maka otu ihe dị ka.
matrix[i][j]=array[n*i+j]
Lelee edemede ọzọ maka ịgbakwunye matrices 2 na ibipụta matriks na-arụpụta.
#!/bin/bash read -p "Enter the matrix order [mxn] : " t m=${t:0:1} n=${t:2:1} echo "Enter the elements for first matrix" for i in `seq 0 $(($m-1))` do for j in `seq 0 $(($n-1))` do read x[$(($n*$i+$j))] done done echo "Enter the elements for second matrix" for i in `seq 0 $(($m-1))` do for j in `seq 0 $(($n-1))` do read y[$(($n*$i+$j))] z[$(($n*$i+$j))]=$((${x[$(($n*$i+$j))]}+${y[$(($n*$i+$j))]})) done done echo "Matrix after addition is" for i in `seq 0 $(($m-1))` do for j in `seq 0 $(($n-1))` do echo -ne "${z[$(($n*$i+$j))]}\t" done echo -e "\n" done exit 0
N'agbanyeghị na enwere oke maka mmejuputa usoro n'ime edemede shei, ọ na-aba uru n'ọnọdụ ole na ole, ọkachasị mgbe anyị ji ngbanwe iwu. N'ileghachi anya na nleba anya nhazi, echiche nke arrays mepere ụzọ maka mmepe nke ọtụtụ edemede ndabere na sistemụ GNU/Linux.