„Linux“ kintamųjų supratimas ir rašymas naudojant „Shell Scripting“ – 10 dalis


„Linux“ apvalkalo scenarijų kalba visada buvo karšta tema ir tokia bus ateityje. „Shell“ scenarijų kalba yra stebuklinga ir ją taip lengva atlikti scenarijų kalba, kaip ir bet kuria kita kalba. Tačiau tam reikia gilių žinių, ką darome ir kokio rezultato tikimasi.

Visi apvalkalo scenarijų straipsniai, kuriuos parašėme savo skaitytojams, yra labai vertinami, įskaitant paskutinį „Linux kintamųjų įžvalga“. Mes pratęsiame paskutinį straipsnį iki naujo lygio.

Kintamieji atributai

Kiekvienas „Linux“ aplinkos kintamasis turi tam tikras parinktis ir jos vadinamos „atributais“. Šias parinktis arba atributus galima įjungti Įjungti ir Išjungti, kai reikia, atsižvelgiant į situaciją, naudojant komandą „deklaruoti“.

Kintamojo atributo pavyzdys: naudojamas jungiklis „-i“, kuris įjungs sveikojo skaičiaus atributą atitinkamam kintamajam. Net jei perjungimui „-i“ perduodama ne skaitinė reikšmė, jis nepateiks klaidos pranešimo ir neišves „0“ kaip sveikojo skaičiaus interpretacijos. Čia tai tampa aiškiau iš toliau pateikto pavyzdžio.

Paskelbkite kintamąjį Integer, bill=121

avi@localhost:~$ declare -i bill=121

Spausdinkite kintamosios sąskaitos reikšmę.

avi@localhost:~$ printf "%d\n" "$bill" 

121

Tegul kintamojo reikšmė yra eilutė. Kintamasis vekselis jau deklaruotas, antrą kartą deklaruoti nereikia. Tiesiog pakeiskite kintamojo as reikšmę.

avi@localhost:~$ bill=tecmint

Dabar vėl išspausdinkite kintamosios sąskaitos reikšmę.

avi@localhost:~$ printf "%d\n" "$bill" 

0

Klaidos pranešimo vietoje atkreipkite dėmesį į „0“.

Dabar kyla klausimas, kaip žinoti jau deklaruotų kintamųjų atributus?
avi@localhost:~$ declare -p bill 

declare -i bill="121"

Čia gelbsti jungiklis -p (reiškia spausdinimą).

Vėlgi, ką turėčiau daryti, kad išjungčiau kintamojo atributus?

Norint Išjungti kintamojo atributus, mums tereikia prieš pat jungiklį įdėti + (pliuso) ženklą. Čia tai aiškiau iš toliau pateikto pavyzdžio.

Išjunkite pirmiau nurodyto kintamojo sveikojo skaičiaus atributą.

avi@localhost:~$ declare +i bill

Patikrinkite kintamojo reikšmę.

avi@localhost:~$ printf "%d\n" "$bill" 

bash: printf: bill: invalid number
0

Dabar išspausdinkite kintamojo reikšmę naudodami jungiklio eilutę.

avi@localhost:~$ printf "%s\n" "$bill" 

tecmint

Aukščiau pateiktame pavyzdyje bash negalėjo įvertinti neskaitinės reikšmės kaip klaida, tačiau printf aiškina, kas gali būti skaičius, o kas ne.

Tik skaitomi kintamieji

Galbūt girdėjote tik skaitymo atmintį (ROM), bet kas yra tik skaitomas kintamasis? Ar jis panašus į ROM?

Na, tik skaitomi kintamieji, tokie kaip tik skaitoma atmintis, yra kažkas, kurio vertės negalima pakeisti, kai ji yra priskirta. Todėl jis vadinamas tik skaitymu. Negalite rašyti, redaguoti ar keisti naujos to kintamojo reikšmės. Čia yra iliustracija naudojant pavyzdį.

Nurodykite tik skaitomą (-r) kintamojo pavadinimą, kurio reikšmė yra „linux-console.net“.

avi@localhost:~$ declare -r name="linux-console.net"

Išspausdinkite aukščiau nurodyto kintamojo reikšmę.

avi@localhost:~$ printf "%s\n" "$name" 

linux-console.net

Pabandykite pakeisti kintamojo reikšmę.

avi@localhost:~$ declare -r name="Avishek" 

bash: declare: name: readonly variable

Kaip aptarta aukščiau, tik skaitomo kintamojo atributus galima pakeisti naudojant „+“ ženklą.

Kintamųjų eksportavimas sistemoje „Linux“.

Visi apvalkalo kintamieji, deklaruoti apvalkalo scenarijuje, yra prieinami, kol scenarijus paleidžiamas. Už scenarijaus ribų kintamasis iš scenarijaus neegzistuoja. Kintamųjų padarymo prieinamais už scenarijaus ribų procesas vadinamas kintamųjų eksportavimu.

Kintamąjį galima eksportuoti už apvalkalo ribų naudojant jungiklį declare -x (eksportuoti), kuris patvirtina apvalkalui tai, ką norėjote eksportuoti. Deklaruoti eksporto jungiklį galima naudoti kaip.

avi@localhost:~$ declare -x variable=”Constant_Value”

Visi kintamojo pakeitimai, atlikti veikiant scenarijui, prarandami, kai kintamasis eksportuojamas už scenarijaus ribų. Kintamojo eksportavimas yra labai svarbus apvalkalo scenarijuose.

Norime turėti kintamąjį, kuris turėtų būti tik skaitomas ir pasiekiamas už scenarijaus ribų, tuo pačiu metu turime naudoti jungiklius -r ir jungiklius -x.

avi@localhost:~$ declare -rx variable=”Constant_Value”

aplinkos įvairovė

Kintamieji, kuriais dalijasi programa ir juos vykdanti programa. Aplinkos kintamuosius galima eksportuoti, bet atributų jiems priskirti negalima.

Aukščiau pateiktos teorijos supratimas praktiškai. Čia turime du scenarijus 0.sh ir 1.sh.

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

Ir antrasis scenarijus yra.

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

Čia, kas vyksta, yra kintamasis (pavadinimas) paskelbiamas kaip tik skaitomas ir eksportuojamas ir iškart po to iškviečiamas antrasis scenarijus.

Antrasis scenarijus ką tik išspausdino kintamąjį iš pirmojo scenarijaus, kuris buvo eksportuotas pirmajame printf sakinyje. Antrame printf sakinyje rodoma nauja reikšmė, priskirta kintamajam „name“.

Nereikia jaudintis, kad kintamasis buvo tik skaitomas, kaip jį galima priskirti iš naujo. Ar neprisimenate, kad „Visi kintamojo pakeitimai, atlikti scenarijui veikiant, prarandami, kai kintamasis eksportuojamas už scenarijaus ribų. “

Nuorodos

Komanda deklaruoti leidžia naudoti visus toliau nurodytus jungiklius kartu su jų deriniais.

  1. -a : deklaruoja masyvą.
  2. -f : ekrano funkcija ir apibrėžimas.
  3. -F: rodomas funkcijos pavadinimas.
  4. -r : paskelbti kintamąjį kaip tik skaitomą.
  5. -x : paskelbti kintamąjį kaip eksportuojamą.
  6. -I : paskelbti kintamąjį sveikuoju skaičiumi.

Tai kol kas viskas. Kitame straipsnyje aptarsime būdus, kaip pakeisti kintamuosius naudojant komandą „eval“ ir kintamuosius, kurie jau apibrėžti programoje bash prieš uždarydami šią temą. Tikimės, kad jums, žmonės, patinka jūsų kelionė į gilų scenarijų. Iki tol sekite naujienas ir prisijunkite prie linux-console.net.