Að skilja og skrifa Linux breytur í Shell Scripting - Part 10


Linux skel forskriftarmálið hefur alltaf verið heitt umræðuefni og mun alltaf vera það í framtíðinni. Shell forskriftarmálið er töfrandi og það er svo auðvelt að gera forrit á forskriftarmáli eins og á hverju öðru tungumáli. Það þarf hins vegar ítarlega þekkingu á því sem við erum að gera og hvaða niðurstöðu er að vænta.

Allar skeljaforskriftagreinarnar sem við höfum skrifað fyrir lesendur okkar eru mjög vel þegnar, þar á meðal sú síðasta „Insight of Linux Variables“. Við erum að færa síðustu greinina á nýtt stig.

Breytilegir eiginleikar

Hver breyta í Linux umhverfi hefur ákveðna valkosti og þeir eru kallaðir „eiginleikar“. Hægt er að kveikja á þessum valkostum eða eiginleikum Kveikja og Slökkva á, þegar þess er krafist í samræmi við aðstæður með því að nota skipunina \declare\.

Dæmi um breytueiginleika er að nota rofa til að segja „-i“ sem mun kveikja á heiltölueigindinni fyrir samsvarandi breytu. Jafnvel þótt ótalnagildi sé sent til að skipta um '-i' mun það ekki senda villuboð og gefa út '0' sem heiltölu túlkun. Hér verður það skýrara af dæminu hér að neðan.

Tilgreindu breytu Heiltala, reikningur = 121

[email :~$ declare -i bill=121

Printf gildi breytilegs víxils.

[email :~$ printf "%d\n" "$bill" 

121

Láttu breytugildið vera streng. Breytilegt frumvarp er þegar lýst yfir, óþarfi að lýsa því yfir í annað sinn. Breyttu bara gildi breytu sem.

[email :~$ bill=tecmint

Nú, aftur printf gildi breytilegs reiknings.

[email :~$ printf "%d\n" "$bill" 

0

Takið eftir „0“ í stað villuboðanna.

[email :~$ declare -p bill 

declare -i bill="121"

Hér kemur -p (standar fyrir prentun) rofi til bjargar.

Til þess að Slökkva á eiginleikum breytu þurfum við allt að setja + (plús) tákn rétt fyrir rofann. Hér er það skýrara af dæminu hér að neðan.

Slökktu á Slökktu á heiltölueigindinni fyrir ofangreinda breytu.

[email :~$ declare +i bill

Athugaðu gildi breytunnar.

[email :~$ printf "%d\n" "$bill" 

bash: printf: bill: invalid number
0

Prentaðu nú gildi breytu með því að nota rofastreng.

[email :~$ printf "%s\n" "$bill" 

tecmint

Hér í dæminu hér að ofan gat bash ekki dæmt ótalnagildi sem villu, hvernig sem printf er að túlka, hvað gæti verið tala og hvað ekki.

Skrifvarar breytur

Þú gætir hafa heyrt Read Only Memory (ROM), en hvað er Read-only Variable? Er það eitthvað líkt með ROM?

Jæja, skrifvarandi breytur eins og skrifvarinn minni er eitthvað sem ekki er hægt að breyta gildinu þegar því hefur verið úthlutað. Þess vegna er það kallað Read-only. Þú getur ekki skrifað, breytt eða breytt nýju gildi fyrir þá breytu. Hér er mynd með dæmi.

Afmerktu skrifvarið (-r) breytuheiti, gildi hennar er \linux-console.net.

[email :~$ declare -r name="linux-console.net"

Printf gildi ofangreindrar breytu.

[email :~$ printf "%s\n" "$name" 

linux-console.net

Reyndu að breyta gildi breytu.

[email :~$ declare -r name="Avishek" 

bash: declare: name: readonly variable

Eins og fjallað er um hér að ofan er hægt að breyta eiginleikum skrifvarðar breytu með „+“ tákni.

Flytja út breytur í Linux

Allar skelbreytur sem lýst er yfir í skeljaforskriftu eru tiltækar þar til handritið er í gangi. Utan handritsins er breytan úr handritinu ekki til. Ferlið við að gera breytur aðgengilegar utan handritsins er kallað útflutningsbreytur.

Hægt er að flytja breytu út fyrir skelina með því að nota switch declare -x (export), sem staðfestir skelina sem þú vildir flytja út. Hægt er að nota declare export switch sem.

[email :~$ declare -x variable=”Constant_Value”

Allar breytingar sem gerðar eru á breytunni á meðan forskriftin er í gangi, glatast þegar breytan er flutt út fyrir forskriftina. Útflutningur á breytu er mjög mikilvægur í skeljaforskriftum.

Við viljum hafa breytu sem ætti að vera skrifvarinn og aðgengileg utan skriftunnar, við þurfum að nota switch -r og switch -x á sama tíma.

[email :~$ declare -rx variable=”Constant_Value”

Umhverfisbreytur

Breyturnar sem deilt er á milli forritsins og forritsins sem keyrir þær. Hægt er að flytja út umhverfisbreytur en ekki er hægt að úthluta þeim eiginleikum.

Að skilja ofangreinda kenningu í raun. Hér höfum við tvö forskriftir 0.sh og 1.sh.

# 0.sh
#!/bin/bash 
declare -rx name=Tecmint 
bash 0.sh 
exit 0

Og annað handritið er.

# 1.sh
#!/bin/bash 
printf "%s\n" "$name" 
name=linux-console.net 
printf "%s\n" "$name"
exit 0

Hér er það sem er að gerast, að breyta (nafn) er lýst sem skrifvarinn og flutt út og strax eftir það er annað handrit kallað.

Önnur forskriftin prentaði bara breytuna úr fyrstu forskriftinni sem var flutt út í fyrstu printf setningunni. Í annarri printf yfirlýsingunni sýnir það nýja gildið sem er úthlutað breytunni 'nafn'.

Engin þörf á að hafa áhyggjur, að breytan var skrifvarinn, hvernig er hægt að endurúthluta henni. Munið þið ekki að Allar breytingar sem gerðar eru á breytunni á meðan forskriftin er í gangi, glatast þegar breytan er flutt út fyrir forskriftina.

Skipunin declare leyfir öllum rofum hér að neðan ásamt samsetningu þeirra.

  1. -a : Lýsir yfir fylki.
  2. -f : Sýnaaðgerð og skilgreining.
  3. -F : Sýningarheiti.
  4. -r : Lýsa breytu sem skrifvarinn.
  5. -x : Lýstu breytu sem útflutningshæfa.
  6. -I : Lýstu breytu sem heiltölu.

Það er allt í bili. Í næstu grein munum við ræða leiðir til að skipta út breytum með „eval“ skipuninni og breytunum sem þegar eru skilgreindar í bash áður en þessu efni er lokað. Vona að þið njótið ferðarinnar til ítarlegrar handritagerðar. Fylgstu með og tengdu við linux-console.net þangað til.