Kijan ak poukisa ou ta sèvi ak $ SHLVL varyab la

Se varyab SHLVL la itilize pou di ou kijan anpil kokiy fon anpil. Si ou se konfonn pa sa a li vo kòmanse nan kòmansman an.

Ki sa ki se yon Shell?

Yon koki pran kòmandman yo ak ba yo nan sistèm nan operasyon kache fè. Nan pifò Linux sistèm se pwogram nan koki rele BASH (Bourne a ankò Shell) men gen lòt moun ki disponib ki gen ladan Shell a (tcsh) ak koki a KORN (ksh).

Kijan Pou Aksè Shell a Linux

Anjeneral kòm yon itilizatè ou kominike avèk pwogram nan koki nan itilize nan yon pwogram emulation tèminal tankou XTerm, konsole oswa luten-tèminal.

Si ou ap kouri yon manadjè fenèt tankou Openbox oswa yon anviwònman Desktop tankou GNOME oswa KDE ou pral jwenn yon emulateur tèminal swa nan yon meni oswa yon priz. Sou anpil sistèm CTRL ALT a rakoursi ak T ap louvri yon fenèt tèminal tou.

Altènativman ou ka chanje nan yon lòt tty (teletypewriter) ki bay aksè dirèk nan yon koki liy lòd. Ou ka fè sa pa peze CTRL ALT ak F1 oswa CTRL ALT ak F2 elatriye.

Ki sa ki se yon nivo Shell

Lè ou kouri yon lòd nan yon koki li kouri nan yon bagay yo rele nivo a koki. Nan yon koki ou ka louvri yon lòt koki ki fè li yon subshell oswa koki a ki louvri l '.

Se poutèt sa, koki a paran ta dwe konsidere petèt nivo 1 koki a ak koki a timoun ta dwe yon nivo 2 koki.

Kijan Pou Montre Nivo a Shell

Li ta dwe vini kòm pa gen sipriz ki baze sou tit la nan atik la ki fason ou ka di ki nivo koki ou ap kouri nan se lè l sèvi avèk $ SHLVL varyab la.

Pou wè nivo a koki ke ou se kounye a kouri nan kalite sa ki annapre yo:

eko $ SHLVL

Olye de sa enteresan si ou kouri lòd ki pi wo a nan yon fenèt tèminal ou ta ka etone wè ke rezilta a tounen se 2.

Si sepandan ou kouri kòmandman an menm lè l sèvi avèk tty a Lè sa a, rezilta a se 1.

Poukisa sa a ka ou ta ka mande? Oke anviwònman an Desktop ou kouri se ke yo te kouri sou tèt yon koki. Sa a koki ta dwe nivo 1. Nenpòt fenèt tèminal ou louvri nan nan anviwònman Desktop sa a gen yo dwe yon timoun nan koki a ki te louvri anviwònman an Desktop ak Se poutèt sa nivo a koki pa ka kòmanse nan nenpòt ki nimewo lòt pase 2.

Tty a pa kouri yon anviwònman Desktop ak Se poutèt sa tou senpleman yon nivo 1 koki.

Ki jan yo kreye subshells

Fason ki pi fasil yo teste konsèp nan kokiy ak subshells se jan sa a. Louvri yon fenèt tèminal epi tape sa ki annapre yo:

eko $ SHLVL

Kòm nou konnen ki soti nan yon fenèt tèminal nivo a koki minimòm se 2.

Koulye a, nan fenèt la fenèt kalite sa ki annapre yo:

sh

Kòmandman an sh sou pwòp li yo kouri yon koki entèaktif ki vle di ou ap itilize yon koki nan yon koki oswa yon subshell.

Si ou kounye a tape sa a ankò:

eko $ SHLVL

Ou pral wè ke nivo a koki se mete 3. Kouri lòd la sh soti nan anba tè a pral louvri yon subshell nan subshell la e konsa nivo a koki yo pral nan nivo 4.

Poukisa se nivo shell ki enpòtan?

Nivo koki a enpòtan lè w ap panse sou sijè ki abòde lan varyab nan Scripts ou yo.

Ann kòmanse ak yon bagay senp:

chen = maisie
eko chen $

Si ou kouri lòd ki anwo a nan yon koki, maisie nan mo yo pral parèt nan fenèt la tèminal.

Louvri yon koki nouvo lè ou tape bagay sa yo:

sh

Si ou kouri lòd sa a ou pral wè ke pa gen anyen ki aktyèlman retounen:

eko chen $

Sa se paske varyab chen $ yo disponib sèlman nan nivo koki 2. Si ou tape sòti pou sòti subshell la epi kouri eko $ chen ankò moisie mo a ap parèt ankò.

Li se tou vo panse sou konpòtman an nan varyab mondyal ki nan yon koki.

Kòmanse nan yon fenèt nouvo fenèt epi tape sa ki annapre yo:

chen ekspòtasyon = maisie
eko chen $

Kòm ou ta atann moisie nan mo parèt. Koulye a, louvri yon subshell ak kalite eko $ chen ankò. Fwa sa a ou pral wè ke maisie nan mo parèt menm si ou se nan yon subshell.

Rezon ki fè la pou sa a se ke lòd la ekspòtasyon te fè $ chen an varyab mondyal. Chanje $ chen varyab nan subshell a menm si ou itilize kòmandman an ekspòtasyon pa gen okenn afekte sou kokiy paran li yo.

Èspere ke sa a ou ka wè ke konnen nivo a koki ou ap travay nan gen kèk siyifikasyon lè yo ekri Scripts.

Egzanp mwen te bay yo trè senplisite men li se byen komen pou yon sèl script koki yo rele yon lòt script koki ki an vire rele yon lòt script koki tout nan yo kounye a kouri nan diferan nivo. Lè ou konnen nivo koki a ka trè enpòtan.