Kuelewa na Kuandika Vigezo vya Linux katika Maandishi ya Shell - Sehemu ya 10


Lugha ya uandishi wa ganda la Linux imekuwa mada motomoto kila wakati na itakuwa katika siku zijazo. Lugha ya Maandishi ya Shell ni ya kichawi na ni rahisi sana kufanya programu katika lugha ya uandishi kama ilivyo katika Lugha nyingine yoyote. Hata hivyo, inahitaji ujuzi wa kina wa kile tunachofanya na matokeo yake yanatarajiwa.

Makala yote ya uandishi wa shell ambayo tumeandika kwa ajili ya wasomaji wetu yanathaminiwa sana ikiwa ni pamoja na ya mwisho \An Insight of Linux Variables. Tunaendeleza makala ya mwisho hadi kiwango kipya.

Sifa Zinazobadilika

Kila Kibadala katika Mazingira ya Linux kina chaguo fulani, na hizo huitwa 'sifa'. Chaguo au sifa hizi zinaweza kuwashwa Kuwashwa na Kuzimwa, inapohitajika kulingana na hali kwa kutumia amri \tangaza.

Mfano wa sifa kutofautisha ni kutumia swichi sema ‘-i’ ambayo itawasha sifa kamili kwa utofauti unaolingana. Hata kama thamani isiyo ya nambari itapitishwa kubadili ‘-i’ haitatuma ujumbe wa hitilafu na kutoa ‘0’ kama tafsiri kamili. Hapa inakuwa wazi zaidi kutoka kwa mfano hapa chini.

Tangaza Nambari inayobadilika, muswada = 121

[email :~$ declare -i bill=121

Chapisha thamani ya bili inayobadilika.

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

121

Hebu thamani ya kutofautiana iwe kamba. Mswada wa kubadilika tayari umetangazwa, hakuna haja ya kuutangaza mara ya pili. Badilisha tu thamani ya kutofautisha kama.

[email :~$ bill=tecmint

Sasa, tena printf thamani ya variable bill.

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

0

Taarifa ‘0’ mahali pa ujumbe wa hitilafu.

[email :~$ declare -p bill 

declare -i bill="121"

Hapa, swichi ya -p (inasimama kwa kuchapishwa) inakuja kuokoa.

Ili kubadili Zima sifa za utofauti tunachohitaji sote ni kuweka alama ya + (plus) kabla tu ya kubadili. Hapa ni wazi zaidi kutoka kwa mfano hapa chini.

Zima Zima sifa kamili ya kigezo kilicho hapo juu.

[email :~$ declare +i bill

Angalia thamani ya kutofautiana.

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

bash: printf: bill: invalid number
0

Sasa chapisha thamani ya kutofautisha kwa kutumia kamba ya kubadili.

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

tecmint

Hapa katika mfano ulio hapo juu, bash haikuweza kuhukumu thamani isiyo ya nambari kama makosa, hata hivyo printf inatafsiri, nambari inaweza kuwa nini na haiwezi kuwa.

Vigezo vya Kusoma pekee

Huenda umesikia Kumbukumbu ya Kusoma Pekee (ROM), lakini ni kibadilishaji cha Kusoma-pekee kipi? Je, ina ufanano wowote na ROM?

Vigezo vya Kusoma pekee kama Kumbukumbu ya Kusoma pekee ni kitu ambacho thamani yake haiwezi kubadilishwa mara tu inapokabidhiwa. Kwa hivyo inaitwa Kusoma tu. Huwezi kuandika, kuhariri au kurekebisha thamani mpya ya kigezo hicho. Hapa kuna kielelezo kwa kutumia mfano.

Ondoa jina tofauti la kusoma tu (-r), ambalo thamani yake ni \linux-console.net.

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

Chapisha thamani ya kigezo kilichotangazwa hapo juu.

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

linux-console.net

Jaribu kubadilisha thamani ya kutofautisha.

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

bash: declare: name: readonly variable

Kama ilivyojadiliwa hapo juu sifa za Kigezo cha kusoma pekee kinaweza kubadilishwa kwa kutumia ishara ya ‘+’.

Inahamisha Vigezo katika Linux

Vigezo vyote vya ganda vilivyotangazwa kwenye hati ya ganda vinapatikana hadi hati ifanye kazi. Nje ya hati kigezo kutoka kwa hati hakipo. Mchakato wa kufanya vigeu vipatikane nje ya hati huitwa kusafirisha vigezo.

Kigezo kinaweza kusafirishwa nje ya ganda kwa kutumia swichi declare -x (hamisha), ambayo inakubali ganda ulilotaka kusafirisha. Swichi ya kutangaza kuuza nje inaweza kutumika kama.

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

Mabadiliko yote yaliyofanywa kwa kutofautisha wakati hati inaendelea, hupotea wakati utofauti huo unasafirishwa nje ya hati. Kuhamisha tofauti ni muhimu sana katika uandishi wa ganda.

Tunataka kuwa na kigezo ambacho kinafaa kusomeka pekee na kupatikana nje ya hati, tunahitaji kutumia swichi -r na kubadili -x kwa wakati mmoja.

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

Vigezo vya Mazingira

Vigezo vinavyoshirikiwa kati ya programu na programu inayozitekeleza. Vigezo vya mazingira vinaweza kutumwa lakini sifa haziwezi kukabidhiwa kwake.

Kuelewa nadharia hapo juu kwa vitendo. Hapa tuna hati mbili 0.sh na 1.sh.

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

Na hati ya pili ni.

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

Hapa kinachoendelea, ni kutofautisha (jina) kutangazwa kama kusomwa tu na kusafirishwa nje na mara baada ya hati hiyo ya pili inaitwa.

Hati ya pili ndiyo imechapisha kigezo kutoka kwa hati ya kwanza ambayo ilisafirishwa katika taarifa ya kwanza ya printf. Katika taarifa ya pili ya printf inaonyesha thamani mpya iliyopewa kutofautisha ‘jina’.

Hakuna haja ya kuwa na wasiwasi, kwamba utaftaji ulisomwa tu, unawezaje kukabidhiwa upya. Je, hukumbuki kuwa \Mabadiliko yote yaliyofanywa kwa kibadilishaji wakati hati inaendelea, yanapotea wakati utofauti huo unasafirishwa nje ya hati.

Amri ya tangaza inaruhusu swichi zote hapa chini pamoja na mchanganyiko wao.

  1. -a : Inatangaza safu.
  2. -f : Kazi ya Kuonyesha na Ufafanuzi.
  3. -F : Jina la Kazi ya Kuonyesha.
  4. -r : Tangaza kigezo kama cha kusoma tu.
  5. -x : Tangaza Kigezo Kinachoweza Kusafirishwa.
  6. -I : Tangaza kigezo kama Nambari kamili.

Hayo ni yote kwa sasa. Katika makala inayofuata tutakuwa tukijadili njia za kubadilisha viambajengo kwa kutumia amri ya ‘eval’ na viambajengo ambavyo tayari vimefafanuliwa katika bash kabla ya kufunga mada hii. Tunatumahi ninyi watu mnafurahia safari yenu ya kuandika hati kwa kina. Hadi wakati huo, endelea kufuatilia na uunganishwe na linux-console.net.