Maarifa ya Vigezo vya Linux katika Lugha ya Maandishi ya Shell - Sehemu ya 9


Tayari tumeandika mfululizo wa makala juu ya Uandishi wa Shell ya Linux ambayo ilikaribishwa vyema wakati huo na ilikuwa muhimu sana hata sasa. Hapa kuna kiunga cha mkusanyiko wa vifungu kwenye uandishi wa ganda.

  1. Jifunze Uandishi wa Shell ya Linux

Hapa katika makala hii tutaona vigezo, utekelezaji wake na utekelezaji wake katika script shell.

Matokeo ya amri yanaweza kuelekezwa kwa pato la kawaida au faili na inaweza kuhifadhiwa kwa kutofautiana, pia. Ikiwa matokeo ya amri ni kubwa ya kutosha kiasi kwamba hailingani na skrini tunasalia tu na chaguo la kuokoa pato kwa faili kwa kutofautisha. Faida moja ya kuokoa pato kwa kutofautisha ni kasi ya uchunguzi haraka. Vigezo huhifadhiwa kwenye kumbukumbu na kwa hivyo huwa ni haraka ikilinganishwa na urejeshaji kutoka kwa faili.

Vigezo ni sehemu muhimu inayotumika katika uandishi wa Shell na hutangazwa kwa kutumia amri ya bash \Tamka. Ili kutangaza kigezo cha kusema 'kiwango', tunahitaji kutekeleza amri iliyo hapa chini.

$ declare LEVEL

Kumbuka: Tunahitaji kutumia \typecast, taarifa iliyojengewa ndani kwa upatanifu wa ganda la korn. 'Declare' ni ya juu zaidi na ina vipengele vyote, kwa hivyo inapendekezwa unapotumia BASH.

  1. Jina badilifu lazima lihalalishe, matumizi ya kibadilishaji katika hati.
  2. Kutumia jina sawa la kutofautisha katika programu inashauriwa sana.
  3. Jina la vigeu linaweza kuwa herufi kubwa na herufi ndogo lakini kwa amri za ganda la kawaida huwa katika herufi ndogo na kwa hivyo inafaa kutumia jina la vigeu katika herufi kubwa, ili kuondoa mkanganyiko wowote. k.m., TOTAL_BILLED_AMOUNT, SELL_REPORT, ORDER_RECEIPT, n.k.

Tofauti inaweza kupewa thamani kwa kutumia ishara sawa (=). Ili kugawa mfuatano tupu kwa kigezo ni lazima tusitoe thamani yoyote baada ya ishara sawa.

$ LEVEL =

Angalia thamani iliyohifadhiwa katika mabadiliko ya 'LEVEL' kama.

$ printf "%i" $LEVEL

printf, amri ambayo watengenezaji programu wengi wa ‘C’ wanaifahamu, huchapisha data. %i - Inawakilisha Nambari kamili. Tunaweza kuibadilisha na %c kwa Tabia au %c kwa mfuatano, inapohitajika.

$LEVEL: Kumbuka '$' ambayo inafanya kazi kama kibadilishaji thamani cha kutofautisha 'LEVEL'.

$ printf "%i" $LEVEL
0

Weka thamani kwa kigezo.

$ LEVEL=0

Angalia data iliyohifadhiwa kwa kutofautiana.

$ printf "%i" $LEVEL
0

KUMBUKA: Inafurahisha kutambua kwamba katika visa vyote viwili, wakati hatukugawa thamani kutofautisha na tulipogawa thamani '0' kwa matokeo ya 'LEVEL' ya kutofautisha 0. Ingawa matokeo ni sawa katika visa vyote viwili. lakini maandishi ya ganda hushughulikia tamko la kutofautisha kwa njia tofauti.

Agiza thamani mpya kwa kigezo.

$ LEVEL=121

Angalia data iliyohifadhiwa kwa kutofautiana.

$ printf "%i" $LEVEL
121

Declare ni amri ya BASH na inaunda kutofautisha tu inapotekelezwa. Tofauti iliyoundwa hivyo inabaki kwenye kumbukumbu hadi hati ikome au kutofautisha kuharibiwa.

$ unset LEVEL

BASH ina zaidi ya vigeu 50 vilivyofafanuliwa awali. Baadhi ya vigeu hivi vina maana maalum iliyoambatishwa kwa BASH k.m., mabadiliko ya RANDOM hutoa nambari nasibu. Ikiwa haijawekwa na kisha kufafanuliwa tena, thamani ya asili ya kutofautisha inapotea milele. Kwa hivyo inashauriwa kutotumia mabadiliko yoyote ya mfumo.

Hapa kuna orodha ya anuwai muhimu za BASH.

  1. BASH—Jina kamili la njia ya Bash.
  2. BASH_ENV—Katika hati ya ganda, jina la faili ya wasifu lililotekelezwa kabla ya hati kuanzishwa.
  3. BASH_VERSION—Toleo la Bash (kwa mfano, 2.04.0(1)-kutolewa).
  4. SAFU—Idadi ya herufi kwa kila mstari kwenye onyesho lako (kwa mfano, 80).
  5. HOSTNAME—Jina la kompyuta. Chini ya matoleo kadhaa ya Linux, hili linaweza kuwa jina la mashine. Kwa wengine, inaweza kuwa jina la kikoa lililohitimu kikamilifu.
  6. HOSTTYPE—Aina ya kompyuta.
  7. NYUMBANI—Jina la saraka yako ya nyumbani.
  8. OSTYPE—Jina la mfumo wa uendeshaji.
  9. PATH—Orodha iliyotenganishwa na koloni ya njia za utafutaji ili kupata amri ya kutekeleza.
  10. PPID—Kitambulisho cha mchakato wa mchakato mzazi wa shell.
  11. PROMPT_COMMAND—Amri ya kutekeleza kabla ya mpangilio wa mfuatano wa kidokezo msingi wa PS1.
  12. PWD—Saraka ya sasa ya kufanya kazi (kama ilivyowekwa na amri ya cd).
  13. RANDOM—Hurejesha nambari nasibu kati ya 0 na 32767 kila wakati inaporejelewa.
  14. SHELL—Ganda linalopendekezwa kutumia; kwa programu zinazoanzisha ganda kwa ajili yako.
  15. TERM—Aina ya uigaji wa mwisho (kwa mfano, kiweko).

Kanuni ya Kugawanyika kwa Neno.

$ LEVEL=0
$ printf "%i" $LEVEL
0

AND

$ LEVEL=”0”
$ printf "%i" $LEVEL
0

Katika visa vyote viwili, matokeo yanabaki sawa. Kwa hivyo ni tofauti gani katika matokeo wakati wa kutumia nukuu?

Wacha tuangalie sawa na data tofauti tofauti.

$ LEVEL=0 ; 1 ; 2 ; 3 ; 4 ; 5
bash: 1: command not found 
bash: 2: command not found 
bash: 3: command not found 
bash: 4: command not found 
bash: 5: command not found
$ printf "%i" $LEVEL
0

Bila kutaja, matokeo sio sahihi. BASH inachukua nafasi hiyo baada ya '0' kama kusitisha na kwa hivyo thamani ya kutofautisha imewekwa kama '0'. Sasa tunajaribu kutumia nukuu kwa anuwai kama ilivyo hapo chini.

$ LEVEL=”0 ; 1 ; 2 ; 3 ; 4 ; 5”
$ printf "%s" $LEVEL 
0;1;2;3;4;5

Bado matokeo sio sahihi. BASH ilichukua maadili tofauti na kuondoa nafasi zote kati yao. Kwa hivyo printf haikufasiri 0,1,2,3,4,5 kama maadili tofauti. Kwa hivyo ni suluhisho gani?

printf "%s" "$LEVEL" 
0 ; 1 ; 2 ; 3 ; 4 ; 5

Ndiyo! Kuweka kibadala kinachobadilika chini ya nukuu ndio suluhisho. Nukuu hupanga wahusika katika ganda na kufasiri herufi maalum kwa njia ya maana.

Manukuu yanaweza kutumika nyuma-kwa-nyuma na ni wazo nzuri kuambatanisha vibadala vinavyobadilika na nukuu. Aidha inaweza kutumika kutenganisha maandishi ya jumla kutoka kwa nukuu. Hapa kuna mfano.

$ LEVEL=5 
$ FLAG_MESSAGE="I HAVE CLEARED LEVEL""$LEVEL"". I Deserve appreciation." 
$ printf “%s” “$FLAG_MESSAGE”
“I HAVE CLEARED LEVEL5. I Deserve appreciation.”

Kutenganisha sehemu za maandishi yaliyonukuliwa na nafasi kutasababisha shida sawa na ilivyojadiliwa hapo juu. Bash itashughulikia nafasi nyeupe kama kukomesha. Njia nyingine ya uingizwaji tofauti ni.

$ LEVEL=5

$ FLAG_MESSAGE="I HAVE CLEARED LEVEL ${LEVEL}. I Deserve appreciation." 

$ printf “%s” "$FLAG_MESSAGE" 
“I HAVE CLEARED LEVEL 5. I Deserve appreciation.”

Nukuu moja huzuia BASH kuchapa vibambo Maalum.

$ printf “%s” '$FLAG_MESSAGE'
“$FLAG_MESSAGE”

Backslash hufanya kazi kama nukuu moja kwa mhusika mmoja. Je, umefikiria utachapisha vipi (\)?

$ printf "%c" "\""

%q inapowekwa pamoja na printf, hutoa backslash baada ya kila neno ili kuhakikisha nafasi ya maneno.

$ LEVEL=5

$ FLAG_MESSAGE="I HAVE CLEARED LEVEL ${LEVEL}. I Deserve appreciation." 

$ printf “%q” "$FLAG_MESSAGE" 
“I\ HAVE\ CLEARED\ LEVEL\ 5.\ I\ Deserve\ appreciation.”

Hayo ni yote kwa sasa. Daima tunajaribu kuwapa wasomaji wetu makala ambazo ni muhimu kwao kila mara. Nakala iliyoangaziwa hapo juu ni kubwa kwa hivyo mada zingine zilizo na mifano zitatolewa katika nakala inayofuata ambayo itajumuisha 'Sifa za kutofautisha', 'Usafirishaji unaobadilika' n.k.

Mpaka wakati huo Endelea kuwa nasi na uunganishwe na linux-console.net. Usisahau kutupatia maoni yako muhimu katika sehemu ya maoni hapa chini.