Nṣiṣẹ pẹlu Awọn ipilẹ ni Ikarahun Ikarahun Shell - Apá 8
A ko le fojuinu ede siseto kan laisi ero ti awọn ipilẹ. Ko ṣe pataki bi wọn ṣe ṣe imuse laarin awọn ede oriṣiriṣi. Dipo awọn eto ṣe iranlọwọ fun wa ni sisọpọ data, iru tabi oriṣiriṣi, labẹ orukọ aami kan.
Nibi bi a ṣe fiyesi nipa kikọ iwe ikarahun, nkan yii yoo ran ọ lọwọ ni ṣiṣere ni ayika pẹlu diẹ ninu awọn iwe afọwọkọ ikarahun eyiti o lo imọran yii ti awọn eto.
Igbekale orun ati Lilo
Pẹlu awọn ẹya tuntun ti bash, o ṣe atilẹyin awọn ipilẹ-ọna ọkan. O le ṣeto opo kan ni gbangba nipasẹ kede ikarahun-itumọ.
declare -a var
Ṣugbọn ko ṣe pataki lati kede awọn oniyipada oriṣi bi loke. A le fi sii awọn eroja kọọkan lati ṣeto taara bi atẹle.
var[XX]=<value>
nibiti ‘XX’ ṣe tọka itọka titobi. Lati sọ di mimọ awọn eroja lo isomọ akọmọ akọmọ, i.e.
${var[XX]}
Akiyesi: Itọka tito lẹsẹsẹ nigbagbogbo bẹrẹ pẹlu 0.
Ọna miiran ti o rọrun lati bẹrẹ ipilẹ gbogbo ọna jẹ nipasẹ lilo batapọ ti akọmọ bi a ṣe han ni isalẹ.
var=( element1 element2 element3 . . . elementN )
Ọna miiran wa ti fifun awọn iye si awọn eto. Ọna yii ti ipilẹṣẹ jẹ ẹka-kekere ti ọna ti a ṣalaye tẹlẹ.
array=( [XX]=<value> [XX]=<value> . . . )
A tun le ka/fi awọn iye si tito-ọrọ lakoko akoko ipaniyan lilo lilo ka ikarahun-itumọ.
read -a array
Nisisiyi lori ṣiṣe alaye ti o wa loke ninu iwe afọwọkọ kan, o duro de diẹ ninu titẹ sii. A nilo lati pese awọn eroja ti o yatọ nipasẹ aaye (ati kii ṣe ipadabọ gbigbe). Lẹhin titẹ awọn iye tẹ tẹ lati fopin si.
Lati kọja larin awọn eroja ti orun a tun le lo fun lupu.
for i in “${array[@]}” do #access each element as $i. . . done
Iwe afọwọkọ atẹle yii ṣe akopọ awọn akoonu ti apakan pataki yii.
#!/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
Ọpọlọpọ awọn iṣiṣẹ okun boṣewa ṣiṣẹ lori awọn ipilẹ. Wo iwe afọwọkọ atẹle ti o ṣe diẹ ninu awọn iṣiṣẹ lori awọn ipilẹ (pẹlu awọn iṣiṣẹ okun).
#!/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
Atẹle ni iṣelọpọ ti a ṣe lori pipaṣẹ afọwọkọ ti o wa loke.
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
Mo ro pe ko si lami ninu ṣiṣe alaye iwe afọwọkọ ti o wa loke ni apejuwe bi o ti jẹ alaye ara ẹni. Ti o ba jẹ dandan Emi yoo ya apakan kan si ori jara yii ni iyasọtọ lori awọn ifọwọyi okun.
Rirọpo aṣẹ yan iṣẹjade aṣẹ kan tabi awọn aṣẹ lọpọlọpọ sinu aaye miiran. Nibi ni ipo yii ti awọn iṣupọ a le fi sii iṣẹjade ti awọn ofin bi awọn eroja kọọkan ti awọn ipilẹ. Sintasi jẹ bi atẹle.
array=( $(command) )
Nipa aiyipada awọn akoonu inu iṣẹjade aṣẹ ti o yapa nipasẹ awọn alafo funfun ti wa ni edidi sinu orun bi awọn eroja kọọkan. Iwe afọwọkọ atẹle yii ṣe atokọ awọn akoonu ti itọsọna kan, eyiti o jẹ awọn faili pẹlu awọn igbanilaaye 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
A le ni irọrun ṣojuuṣe matrix iwọn-meji nipa lilo ọna iwọn 1 kan. Ni tito aṣẹ pataki awọn eroja oniduro ni ila kọọkan ti matrix kan ti wa ni lilọsiwaju ni awọn atọka tito ni ọna itẹlera. Fun matrix mXn kan, agbekalẹ fun kanna ni a le kọ bi.
matrix[i][j]=array[n*i+j]
Wo iwe afọwọkọ miiran fun fifi awọn iwe-ikawe meji kun ati titẹjade iwe-ẹri abajade.
#!/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
Botilẹjẹpe awọn idiwọn wa fun imisi awọn eto inu iwe afọwọkọ ikarahun, o di iwulo ni ọwọ ọwọ awọn ipo, ni pataki nigbati a ba mu pẹlu rọpo aṣẹ. Nwa lati oju-iwoye iṣakoso, imọran ti awọn eto ṣe ọna fun idagbasoke ọpọlọpọ awọn iwe afọwọkọ lẹhin ni awọn ọna GNU/Linux.