Fahimta da Rubutun Mabambantan Linux a cikin Rubutun Shell - Kashi na 10


Harshen rubutun harsashi na Linux ya kasance babban batu kuma koyaushe zai kasance a gaba. Harshen Rubutun Shell sihiri ne kuma yana da sauƙin yin shiri cikin yaren rubutun kamar kowane Harshe. Koyaya, yana buƙatar zurfin sanin abin da muke yi da abin da ake tsammanin sakamakon.

Dukkan labaran rubutun harsashi da muka rubuta don masu karatunmu suna da matukar godiya gami da na ƙarshe An Insight of Linux Variables Muna haɓaka labarin ƙarshe zuwa sabon Mataki.

Halaye masu canzawa

Kowane Mai canzawa a cikin Muhalli na Linux yana da wasu zaɓuɓɓuka, kuma waɗanda ake kira 'halayen'. Ana iya kunna waɗannan zaɓuɓɓuka ko halayen A kunne da A kashe, lokacin da ake buƙata gwargwadon halin da ake ciki ta amfani da umarni \bayyana.

Misalin sifa mai canzawa shine ta amfani da maɓalli a ce ''-i' wanda zai kunna sifa mai ma'ana. Ko da an wuce ƙimar da ba ta ƙididdigewa ba don canjawa ''-i' ba za ta jefa saƙon kuskure da fitar da ''0' a matsayin fassarar integer ba. Anan ya zama mafi bayyane daga misalin da ke ƙasa.

Ƙayyade madaidaicin lamba, lissafin = 121

[email :~$ declare -i bill=121

Printf darajar m lissafin.

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

121

Bari ƙima mai canzawa ta zama kirtani. An riga an bayyana lissafin canjin canjin, babu buƙatar bayyana shi a karo na biyu. Kawai canza darajar m kamar yadda.

[email :~$ bill=tecmint

Yanzu, sake buga ƙimar m lissafin.

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

0

Sanarwa ''0' a wurin saƙon kuskure.

[email :~$ declare -p bill 

declare -i bill="121"

Anan, maɓallin -p (yana tsaye don bugawa) yana zuwa don ceto.

Domin musanya Kashe halayen mabambanta abin da muke buƙata duka shine sanya alamar + (plus) kafin kunnawa. Anan ya fi fitowa fili daga misalin da ke ƙasa.

Kashe A kashe sifa ta lamba don madaidaicin sama.

[email :~$ declare +i bill

Bincika darajar ma'auni.

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

bash: printf: bill: invalid number
0

Yanzu buga ƙimar m ta amfani da kirtani mai sauyawa.

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

tecmint

Anan a cikin misalin da ke sama, bash ba zai iya yin hukunci da ƙimar ƙima ba azaman kuskure, duk da haka printf yana fassara, menene zai iya zama lamba da abin da ba zai iya zama ba.

Canje-canje masu karantawa kawai

Wataƙila kun ji Read Only Memory (ROM), amma menene Canjin Karatu-kawai? Shin yana da wani kamance da ROM?

To Read-on Variables kamar Read-only Memory abu ne wanda darajarsa ba za ta iya canzawa da zarar an sanya shi. Don haka ake kiransa Karatu kawai. Ba za ku iya rubuta, gyara ko gyara sabuwar ƙima don wannan madaidaicin ba. Anan ga misalin ta amfani da misali.

Ƙayyade suna mai canzawa kawai (-r), ƙimarsa shine \linux-console.net.

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

Buga ƙimar mabambantan da aka bayyana a sama.

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

linux-console.net

Yi ƙoƙarin canza ƙimar canji.

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

bash: declare: name: readonly variable

Kamar yadda aka tattauna a sama, ana iya canza halayen Sauyawa mai karantawa kawai ta amfani da alamar ''+'.

Ana Fitar da Canje-canje a cikin Linux

Duk masu canjin harsashi da aka bayyana a cikin rubutun harsashi suna samuwa har sai rubutun yana gudana. A wajen rubutun babu mai canzawa daga rubutun. Hanyar samar da masu canji a waje da rubutun ana kiranta masu canjin fitarwa.

Ana iya fitar da mai canzawa a waje da harsashi ta amfani da canza bayyana -x (fitarwa), wanda ya yarda da harsashi abin da kuke son fitarwa. Za a iya amfani da maɓalli na fitarwa azaman.

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

Duk canje-canjen da aka yi ga mai canzawa yayin da rubutun ke gudana, yana ɓacewa lokacin da aka fitar da mai canjin waje da rubutun. Fitar da canji yana da mahimmanci sosai a rubutun harsashi.

Muna son samun canjin da ya kamata a karanta shi kaɗai kuma yana samuwa a waje da rubutun, muna buƙatar amfani da switch -r da canza -x a lokaci guda.

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

Canje-canjen Muhalli

Matsalolin da aka raba tsakanin shirin da shirin da ke aiwatar da su. Ana iya fitar da masu canjin yanayi zuwa waje amma ba za a iya sanya halayen su zuwa gare shi ba.

Fahimtar ka'idar da ke sama a aikace. Anan muna da rubutun 0.sh da 1.sh.

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

Kuma rubutun na biyu shine.

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

Anan abin da ke faruwa, shine ana bayyana canjin (suna) azaman karantawa kawai kuma ana fitar dashi kuma nan da nan bayan wannan rubutun na biyu ana kiran shi.

Rubutun na biyu kawai ya buga m daga rubutun farko da aka fitar a cikin bayanin printf na farko. A cikin bayanin bugawa na biyu yana nuna sabuwar ƙima da aka ba wa mabambanta ‘name’.

Babu buƙatar damuwa, cewa mai canzawa ya kasance karantawa kawai, ta yaya za'a sake sanya shi. Kada ku tuna cewa \Dukkan canje-canjen da aka yi ga ma'auni yayin da rubutun ke gudana, yana ɓacewa lokacin da aka fitar da m a waje da rubutun.

Umurnin bayyana yana ba da damar duk masu sauyawa da ke ƙasa tare da haɗin kansu.

  1. -a : Yana bayyana tsararru.
  2. -f : Nuni Aiki da Ma'anar.
  3. -F : Nuni Aiki Sunan.
  4. -r : Bayyana m azaman karantawa-kawai.
  5. -x : Bayyana Canje-canje azaman Fitarwa.
  6. -I : Bayyana m azaman lamba.

Shi ke nan a yanzu. A cikin labarin da ke gaba za mu tattauna hanyoyin da za a musanya masu canji ta hanyar amfani da 'eval' umarni da masu canjin da aka riga aka ayyana a cikin bash kafin rufe wannan batu. Fata ku mutane kuna jin daɗin tafiya zuwa zurfin rubutun. Har sai a saurara kuma ku haɗa zuwa linux-console.net.