>> [Seminè - UNIX rezèrvwar, Anviwònman]
[Douglas Kline - Harvard University]
[Sa a se CS50. - CS50.TV]
>> Sijè jodi a se koki a UNIX.
Mwen se Douglas Kline, ekspè, oswa omwen rezonab konpetan itilizatè, nan koki an.
Yon koki se koòdone nan pou itilizatè a pou sistèm opere òdinatè a la.
Non a a gen erè ladan kòm, kontrèman ak koki yon bèt la,
ki se difisil ak pwoteksyon, koki a òdinatè pèmèt pou kominikasyon.
Se konsa, manbràn ki mouye ta kapab yon pi bon metafò.
>> Koki orijinal la pou UNIX se koki a Bourne.
Bourne se eple B-O-U-R-N-E.
Bourne se te youn nan otè yo orijinal la nan UNIX,
yo ak pou se koki a yo te rele dèyè l '.
Non a nan ki koki kòm yon lòd se jis tou senpleman è.
Sa a bay lòd la ou ka egzekite.
Koki a kòmanse nan login.
Lè ou ouvri sesyon an nan òdinatè a, koki a jis kòmanse kouri pou ou,
ak se sa ki pran kòmandman ou yo.
Li ka kòmanse nan yon lòt lè tou.
Si ou pote yo moute yon fenèt ki pa gen okenn lòt endikasyon, li pral kòmanse yon koki pou ou.
Sa a ki jan li se sa ou ka ale nan yon fenèt epi yo kòmanse sezisman kòmandman
ak pou fè gen menm si ou pa t 'ouvri sesyon an ak sa yo ki fenèt.
Anplis de sa, si ou fè yon login aleka,
Lè sa a, li pral kòmanse yon koki sou òdinatè a aleka.
Apre sa, li posib nan kouri kòmandman san yo pa yon koki entèaktif.
Sa ka vle di nan lespas operasyon ou ye kounye a,
epi li ka vle di tou yon operasyon aleka.
Ou te kapab voye yon lòd nan yon lòt òdinatè,
ki gen ladan kòmanse moute yon kokiy la.
An reyalite, li te gen ladan yo kòmanse moute yon kokiy gen
menm si ke se pa objektif final ou a.
Lè yon bagay kòmanse moute tankou sa a, li pa nesesèman kòmanse yon nouvo koki.
Si ou pote yo moute yon lòt fenèt an, li posib yo di li yo pote moute yon editè
oswa kèk lòt lòd.
Nan ka sa a, editè la pral kòmanse nan grate.
Lè editè a fini, fenèt la fini.
Sa a se yon ti kras etranj, men li ka fè.
Nan ka sa yo, li pa pral yon kokiy.
Se konsa, li pa nesesèman ka a ke yon fenèt oswa kèk aplikasyon sa yo ap pote yo moute yon kokiy.
>> Shell pars kòmandman.
Analyse vle di idantifye eleman yo ak divès kalite klase yo.
Nan yon lòd, fisèl la konplè ki ou tape,
pral gen 1 oswa plis kòmandman sèl yo dwe egzekite.
Lòt eleman yo ka agiman.
Gen kapab tou gen pou karaktè espesyal ki afekte nan ekzekisyon an nan yon lòd.
Yo ka voye pwodiksyon an yon kote lòt pase ekran an
si yo lòd, ki ta nòmalman voye li nan ekran an.
Li ka redireksyon yo di nou; li ka fè lòt bagay tou.
Gen divès kalite lòt senbòl, karaktè, ak pou fè.
Analyse enplike nan detekte epi entèprete pawòl sa yo.
>> Koulye a, si pa gen okenn plis kesyon, ke se pito gen anpil chans depi pa gen okenn plis moun,
nou pral ale nan paj ki vin apre m 'isit la.
>> M 'te di pi bonè ke Bourne koki a se premye koki la.
Gen lòt moun.
Youn nan se C-koki la. Lòd la se kch.
Non C-koki a se jis yon pyès teyat sou mo.
Te koki sa a prezante ak Berkeley UNIX nan mitan ane 1970 yo-.
Berkeley UNIX se te yon evènman fondateur nan devlopman UNIX.
Se te yon revolisyon gwo ak enkli entwodiksyon an nan koki sa a.
Rezon ki fè la pou sa jwe sou mo, C-koki,
se ke C-koki a gen kèk karakteristik nan li ki sanble ak lang lan C,
ki Bourne koki a pa gen -
oswa li pa t 'gen nan moman sa.
Genyen tou TC-koki la.
Sa a se yon suransanbl nan C-koki la.
Li te gen karakteristik adisyonèl, anpil nan yo ki yo itil yo pou sèvi ak entèaktif,
tankou raple kòmandman nan mekanis nan istwa,
ki mwen pral dekri yon ti jan pita -
nan yon fason ki senp, modelize apre yon editè.
Li tou te gen konsolidasyon ki pèmèt ou mare yon kòd kout kle nan yon lòd pi long lan.
Nou pa pwal yo dwe ap resevwa nan ke jodi a.
Li te gen kèk karakteristik ki yo itil yo pou pwogram.
Sepandan, C-koki a se pa sa souvan itilize pou pwogram koki.
Pwogram Shell, si ou pa t 'konnen deja,
yo se pwogram ki konpoze de karakteristik koki.
Ou te kapab kouri sa yo kòm pwogram yo.
Ou ekri yon pakèt moun sou kòmandman koki nan yon dosye ak egzekite dosye a.
Ou pa bezwen konpile li. Sa a se yon lang entèpretasyon.
Fraz C-koki la kounye a se Limit depi l 'te ka al gade sèlman nan orijinal C-koki, kch a,
oswa nan tout C-kokiy, ki gen ladan tchch. Li se yon ti kras Limit.
>> Yon kokiy pita se Korn koki a, kch, rele apre pwogramè a, Korn.
Koki sa a te eseye mete nan 1 koki
avantaj ki genyen nan C-koki a pou itilize entèaktif
ak Bourne nan koki pou pwogram.
Li te itilize kòm yon koki entèaktif pa gen kèk moun ki - yon minorite yo.
Apre sa menm si, te gen yon lòt entwodiksyon, koki a frape, frape,
ankò yon pyès teyat sou mo, Bourne-ankò koki.
Li nan yon ekstansyon pou koki a Bourne. Korn koki se tou. Tou de nan yo se.
Li te gen objektif yo menm nan Korn koki a nan fizyon C-koki a
ak avantaj Bourne koki a nan 1 koki.
Anpil nan amelyorasyon yo nan koki a Korn yo tou enkli nan frape.
Bach, sepandan, gen pi plis ak Se poutèt sa se preferab.
Bourne-ankò koki a, epi yo koki a Korn rele kokiy Bourne-kalite
paske yo genyen ladan yo karakteristik Bourne koki a,
ki se enkonpatib nan kèk respè ak C-kokiy.
Gen lòt kokiy san konte sa yo, kèk gen entansyon pou itilize anba restriksyon yo,
petèt limite a sa sèlman kèk kòmandman, petèt rezon espesyalize, pa itilize souvan.
>> Okay. Next atik isit la.
Bach koki a te vin asosye ak divès kalite fòm nan Linux.
Mwen pa si si sa a vre nan chak fòm.
Gen anpil fòm yo deyò epi mwen pa te itilize yo tout,
men nan moun ki mwen te itilize li te vin asosye ak li.
Se konsa, lwen ke mwen konnen, pa gen anyen sou bach
sa ki fè li nenpòt ki plis konpatib ak Linux
pase nenpòt lòt konbinezon de koki ak sistèm operasyon.
Mwen panse ke sa a pwobableman jis reflete gou yo nan pwogramasyon yo.
Ke li te vin asosye ak Linux se yon lòt rezon ki fè nou pito frape kch
depi bagay sa yo gen plis chans yo dwe ekri nan li epi li sanble sa kapab gaye.
Mwen pral ba w lòt rezon pou sa pita sou.
Scripts koki Bourne ta dwe kouri anba koki a Korn oswa frape.
Si ou ekri yon bagay pou koki a Bourne,
ou ka pwobableman egzekite l 'anba kch oswa frape.
Korn Scripts koki ap pwobableman kouri anba bach, men mwen pa kapab bay garanti.
Apre sa sou isit la, Scripts C-koki ta dwe kouri anba TC-koki la.
C-koki a te aktyèlman pa janm Roldan itilize pou scripting
depi Bourne nan koki epi pita kokiy yo Bourne-kalite yo te pi bon pou sa.
Se konsa, ki vrèman se pa tout sa ki enpòtan.
Gen byen yon anpil nan Bourne Scripts koki ki te ekri lontan de sa,
anvan koki a Korn oswa Bourne-ankò koki a Yo te vin entwodwi.
Moun sa yo ki yo toujou nan itilize, yon pati nan sistèm yo opere,
yo ak pou ou pral jwenn yo si ou gade nan sistèm nan fonksyone
oswa kèk pakè pwogram fin vye granmoun.
>> Bach se nan yon sèten mezi vin tounen yon kalite lenga Franca pou sistèm operasyon.
Li deja te pwolonje nan Windows ak virtuèl.
Virtuèl, nan ka ou pa konnen, se yon sistèm opere propriétaires
nan DIGITAL EQUIPMENT Corporation ki se toujou nan itilize, lajman dèyè sèn nan.
Men, si li pral yo dwe kouri sou plizyè sistèm opere diferan,
gen anpil chans moun yo gen tandans chanjman pou li.
Men, sa a devlopman se relativman ki resan.
Li sèlman kòmansman, se konsa mwen pa ka predi si sa a yo pral vire soti nan vrèman dwe ki kalite lenga Franca.
Epitou, paske chmen dosye ak bibliyotèk diferan
ant sistèm sa yo opere diferan,
ou pa ka kapab ekri yon script bach sou yon sèl sistèm opere
ak Lè sa a, kouri l 'sou yon lòt.
Ou ta dwe kapab pou avanse pou li ant diferan UNIX, Linux
Sistèm opere Mac OS men pa nesesèman nan Windows oswa virtuèl.
Ou ta ka oblije chanje deskripsyon dosye chmen,
ak kèk bibliyotèk la ka diferan,
ki kapab afekte fason an ke gen kèk kòmandman travay
oswa ki jan yo travay sou agiman ak renmen an.
Anplis de sa ak sa yo ki, yon lòt prekosyon isit la se ke pa gen okenn garanti
ke tout kokiy yo diferan mwen te mansyone - Bourne koki, C-koki,
TC-koki, Korn koki, Bourne-ankò koki - yo ap disponib nan nenpòt UNIX
oswa Linux oswa Mac OS òdinatè.
Yo tou senpleman pa ka la.
Se youn nan prekosyon sa yo isit la.
Se yon limit malere isit la depi ou ta renmen bagay sa yo nan travay tout kote,
men malerezman, ou pa ka konte sou sa.
>> Okay. Next yon sèl isit la.
Se pou nou di ke ou vle ekri yon script koki,
yon pwogram ki fòme ak kòmandman koki.
Ou ekri kòmandman ou yo, mete yo nan yon dosye, l'a dosye a.
Ki sa ki si ou vle genyen ladan yo agiman?
Nan ka a nan operasyon koki, agiman yo rele yo paramèt oswa paramèt pozisyon
epi yo pral rele pa yon siy dola ak chif, $ 1, $ 2.
Se konsa, si script la gen non sa a, premye agiman mwen ta ka agiman 1
ak dezyèm m 'ta kapab agiman 2,
ak andedan script mwen si mwen vle gade nan bagay sa yo -
kite a efase sa a depi mwen pa reyèlman ale nan kouri li -
andedan script m 'mwen ta ka gen $ 1, al gade nan arg1,
$ 2, ki pral soti fason sa a, arg2.
Se konsa, moun senbòl ki disponib, al gade nan agiman,
ak moun ki aplike nan tout nan kokiy yo.
Anplis de sa, gen karaktè lòt.
$ * Refere a tout antye lis la agiman yo, tout nan yo.
$ # Refere a ki kantite agiman.
Yon fwa ankò, sa a aplike a tout kokiy yo.
Moun sa yo ki senbòl, * ak #, ki ka itilize ak sa yo siyifikasyon nan lòt kote tou.
Nou pa pral antre nan sa.
>> Liy dvi Shell. Ki sa ki nan ke pou?
Se pou nou di ou te ekri yon script ak li a pou yon kokiy patikilye, epi ou vle kouri li.
Ki jan ou fè konnen ki sa koki sistèm opere ou pral sèvi ak nan kouri script ou a?
Nan yon pwen ou ta ka asime ke li ta kouri li nan koki a Bourne
si ou pa t 'di otreman,
men moun yo pa ekri Scripts nan Bourne nan koki ke anpil ankò
epi ou pa menm ka konte sou ki ankò.
Se konsa, isit la nou gen yon liy dvi koki dwa isit la.
Ki espesifye bach.
Remake byen ke li presize l 'nan chmen a, / bin / frape.
Si yon òdinatè gen koki a frape men se pa nan anyè a bin, / bin, sa a pa pral travay.
Sa a yon lòt kalifye, yon lòt prekosyon isit la.
Siyen an liv se karaktè nan liy kòmantè.
Sa aplike a tout kokiy.
Ka a an patikilye isit la, #! nan kòmansman an nan yon script, se yon ka espesyal.
Ki espesifye koki a nan sa ki nan kouri script la.
Kòm mwen te di, li pa ta ka menm kote / bin la.
Anplis de sa, gen nan yon lòt bagay isit la.
Si ou jis sèvi ak siy nan liv ki pa gen okenn pwen esklamasyon ak chmen,
ki ta dwe endike yon C-koki.
Sepandan, mwen pa rekòmande fè sa paske mwen se pa kapab garanti
sa a, ap toujou travay.
Si ou vle yon C-koki, li ta pi bon yo di sa.
Lè sa a, gen nan yon bagay olye konfizyon isit la.
Si ou itilize yon liy koki dvi tankou / bin / frape
e ke koki a pa disponib la,
gen nan pa gen bagay tankou / bin / frape sou sa òdinatè patikilye,
swa paske li pa gen bach oswa paske li nan nan yon kote diferan,
ou pral jwenn yon erè di ou ke script a ou kouri pa egziste.
Ak nan kou script ou ki egziste, se konsa ke mesaj erè a se konfizyon.
Rezon ki fè sistèm nan fonksyone ba ou ki erè
oswa, plis presizyon, ki koki entèaktif ou nan kote ou ap kouri sa a bay ki erè,
se ke li rapò yo lòd, ki ou te itilize, ki se non an nan script la.
Sa lòd efektivman rele koki a pa non an nan script la.
Sa a kote ou jwenn ki mesaj erè konfizyon.
Yon lòt fason yo rele script koki
se pa ki espesifye koki a sou liy lan lòd, menm jan isit la.
Sa a se yon lòd. Sa a di kouri frape ak Lè sa a, kouri script m 'ki nan bach.
Ki pral vin anvan règleman sou yon liy dvi,
ak sa a gen karakteristik la nan ki pèmèt ou pou bay pou varye chmen.
Si ou jis bay yon lòd, sistèm nan fonksyone pral gade pou sa bay lòd
divès kote.
Si li la disponib, li ta dwe jwenn li ankò.
Òdinatè a ap jwenn frape tout kote li a chita epi kouri li,
Se konsa, ou pa bezwen Lè sa a, yo dwe konsène sou kote li jwenn li.
Gen potansyèlman lòt enkyetid isit la,
kòm si gen nan plis pase 1 vèsyon an bach, ki se posib byenke fasil.
Se konsa, sa a, se yon lòt fason yo fè fas ak bagay sa yo.
Liy dvi ka rele nenpòt ki koki.
Yo ka rele bagay sa yo lòt pase kokiy tou.
Men kèk egzanp mwen gen isit la yo SED, ki se editè a kouran;
awak, ki se yon lang pwosesis modèl;
ak pèrl, yon trè trè devlope lang scripting.
Si ou mete yon liy dvi ki endike youn nan pwogram sa yo nan kòmansman an,
li pral ale dirèkteman nan pwogram sa a olye ke kòmanse yon koki.
Pwogram sa yo gen limit kapasite yo.
Pèrl se yon bagay ki kapab. SED se yon editè. Li ka fè bagay sa yo pi lwen pase tou senpleman koreksyon.
Men, li ka difisil nan pwogram sa a.
Anplis de sa, pase agiman ak lòt bagay script se swa enposib oswa konfizyon.
Se konsa, nan ka sa yo, ak awak oswa SED, li la, omwen nan eksperyans mwen,
pi preferab ke ekri yon koki script ak apèl awak oswa SED soti nan script la koki
olye ke w rele awak oswa SED kòm liy lan script dvi.
Pèrl se yon lang trè diversifiée, jan mwen te di.
Ou pa ka kouri kòmandman entèaktif nan pèrl,
ki vle di ke ou pa ka fè tès pati nan Scripts ke w ap devlope
pa kouri yo epi youn.
Sepandan, li nan yon lang trè kapab
e li te devlope nan yon zouti trè lajman itilize.
Se jis yon ti kras nan yon remak parantèz sou liy ki dvi.
>> Nan tout oswa pifò fòm nan Linux - ankò, mwen pa kapab sèten ke nan tout -
ak nan Mac OS, si ou tape kch ou jwenn tchch,
epi si ou tape SH ou jwenn frape.
Yo te ap eseye gen ba w vèsyon yo ki pi avanse nan kokiy sa yo,
men sa a kapab koze konfizyon.
Si ou ekri yon script lè l sèvi avèk tchch oswa bach karakteristik pandan y ap rele kch oswa è
ak lè sa a eseye kouri li sou yon òdinatè ki pa gen tchch oswa frape,
ou ta ka jwenn kèk erè si gen kòmandman an gen
ki kokiy moun pa rekonèt.
Anplis de sa, ou ka yo te rele moute koki ou sou òdinatè lokal ou an
rele li kòm è oswa kch ak Lè sa a, ap resevwa kokiy yo ki pi plis avanse.
Ou pa kapab menm panse nan lefèt ke w ap itilize koki a ki pi avanse.
Se konsa, sa a se yon pyèj potansyèl yo.
Kouman se li etabli ke si ou tape SH ou jwenn frape,
Si ou tape kch ou jwenn tsch?
Gen anpil bagay nan òdinatè sa yo rele lyen
sa ki ka konekte nan pote non, al gade nan menm bagay la.
Li kapab swa dwe 2 non pou dosye a menm oswa yon dosye ki gen rezon se, al gade nan yon lòt dosye.
Yo ap rele lyen difisil ak senbolik. Nou pa pral ale nan ki ankò jodi a.
Gen pouvwa tou pou dosye separe - 1 dosye è, 1 dosye bach -
men yo tou de kouri frape.
Lè sa a, gen nan yon lòt kalifye isit la.
Si w ap rele youn nan kokiy sa yo pa youn non,
ou ta ka panse ou ta jwenn menm fonctionnalités a kòm rele li pa yon lòt non.
Oke, ki aktyèlman se pa nesesèman verite.
Kòmandman sa yo ka egzaminen non an pa ki yo te rele
epi yo ka, sou baz sa a nan non, konpòte yon fason diferan.
Gen pouvwa pou pwoblèm nan ap eseye konfòme yo ak yon estanda.
Kèk nan nou ka te tande nan estanda a POSIX oswa yon lòt,
petèt lòt karakteristik.
Sa a ka chwazi pafwa pa lòd liy agiman
oswa pa mete varyab koki.
Rele li kòm è oswa frape ka aktyèlman mennen nan yon ekzekisyon diferan
menm si li nan dosye a menm ke w ap egzekite.
Yon lòt bagay yo konsidere se ke menm si yon lòt òdinatè gen tchch oswa frape,
si yo pa yo lye jan yo ye sou òdinatè lokal ou an
si ou gen yon Linux oswa Mac OS òdinatè lokal yo,
Lè sa a, ankò ou pral jwenn koki a ke ou rele è oswa kch, pa yon sèl la ki ou ta ka prefere.
Kounye a Bourne koki an gen amelyorasyon pi piti pase sa yo ki nan bach
men sot pase sa yo ki nan orijinal Bourne koki la.
Kòm yon rezilta de sa, menm Bourne koki a kounye a, è,
menm lè li pa frape, sanble ak C lang plis nan pase C-koki a fè.
Sa pa te vre lè yo te C-koki an premye ki te kreye, men li te devlope ki fason.
Ou ta ka remake isit la ke tout non koki sa yo eksepte pou koki a Bourne
gen yon bagay yo konnen nan ki koki yo - kch, frape -
men Bourne koki a se jis è.
Pou ki sa? Sa ki te koki orijinal la.
Li te koki a Lè sa a,, se pa yon koki,
epi depi li te koki a, pa te gen okenn rezon ki fè yo fè distenksyon ant li soti nan yon lòt koki.
Se konsa, Se poutèt sa li gen pou non epi ou toujou ap fè.
>> Tèt sa a isit la se yon liy ki soti nan yon baz done modpas pou yon kont Mwen gen gen
sou yon lòt òdinatè.
Mwen pral eseye jwenn ke non pou ou ka wè pati sa a nan fen a, koki a.
Baz done a modpas kenbe karakteristik sa yo login pou tout itilizatè yo.
Nan kòmansman an se non itilizatè a, ki ou ka wè 2 dènye lèt yo m 'yo kounye a.
Jaden yo isit la yo separe pa kolon.
Jaden an pase a, jan ou ka wè, se bin / tchch, koki a.
Sa a dvi a koki.
Genyen yon bagay enteresan isit la.
Lè premye te devlope UNIX, te gen sèlman 1 koki,
Se konsa, pa te gen okenn chwa a.
Se konsa, poukisa yo te pèmèt yon jaden nan baz done a modpas ou presize yon kokiy?
Mwen pa konnen, men li la chans ke yo te fè.
Li nan olye difisil fè chanjman nan fòma an baz done modpas
paske anpil pwogram, al gade nan fòma li yo
e li ta gen yo dwe ekri ankò.
Li se yon devlopman reusi oswa chanse yo ke yo enkli ki jaden.
Se ki kalite yon liy dosye modpas itilize sou tout UNIX ak Linux òdinatè Se konsa, lwen ke mwen konnen.
Mac a gen sistèm pwòp li yo.
Li aktyèlman gen yon dosye modpas ak liy yo nan ki fòma,
men sa se pa gen kote karakteristik sa yo itilizatè yo defini.
Yon lòt remak parantèz la.
>> Si w ap rele yon kokiy, ou ka rele li kòm yon sub-koki nan kokiy ki egziste deja ou.
Se konsa, si m 'ale la a, se pou yo debarase m de bagay sa yo.
Men mwen menm mwen nan C-koki la.
Sa varyab, ki avèk presizyon idantifye koki m 'yo,
aktyèlman se pa toujou yon fason serye nan detèmine ki koki w ap kouri,
Men, nan ka sa a li ye.
E si mwen jis tape -
Koulye a, mwen nan frape.
Men kèk bagay yo ale nan fè menm bagay la. ls di m 'kòmandman m' yo.
Si m 'yon sispann tounen nan mwen an C-koki, ls, se li menm. Dwa?
fg, premye plan, tounen nan koki bach m 'yo.
PWD, anyè kounye a, tounen nan C-koki la.
PWD, diferan anyè - aktyèlman pa yon anyè diferan nan ka sa a.
Li nan anyè a menm.
Se pou nou di mwen vle rele yon lòd isit la: ki kote ls.
Ki sa ki ki fè?
Li di m 'ki kote ls yo bay lòd,
se yon sèl la ki ban m 'yon lis anyè, ki chita nan ls.
Se pou yo tounen nan frape koki. Ann eseye menm bagay la.
O o, enteresan la, kote: lòd pa jwenn.
Poukisa se sa?
Se lòd nan kote bati nan C-koki la.
Sa a se pa yon lòd ki gen ou dwe li yo a memwa soti nan yon lòt kote ak egzekite.
C-koki a kouri li pa transfere ekzekisyon nan pati nan kòd pwòp li yo
epi li pa nan frape koki la.
Se konsa, bach, pa gen tankou yon lòd bati-an, sanble pou li, pa jwenn li,
e nou jwenn yon erè.
Se konsa, gen nou gen yon koki bach kouri anba yon C-koki, epi nou rele ke yon sub-koki.
Apre sa, jis nan ka ou se kirye, bach koki gen pwòp fason li yo nan lokalize kòmandman.
ache refere a lefèt ke li ka byen ekzekite pi vit,
yo te jwenn yo pi vit.
Se youn nan amelyorasyon yo bati nan nan kèk nan kokiy sa yo.
>> Kokiy Bourne-kalite yo pi pito pou pwogram.
Yo gen estrikti kontwòl tankou pasan, deklarasyon kondisyonèl,
sòt nan kòmandman ke ou ta ka sèvi ak nan lang pwogramasyon tankou C
oswa kèlkeswa lang. Petèt w ap pwogramasyon nan Java oswa kèlkeswa sa.
Kokiy gen moun ki tou.
Kokiy yo Bourne-kalite, patikilyèman frape yo, yo gen plis
epi yo ap fèt ak pi gwo fleksiblite.
Bach koki an gen ranje. Orijinal Bourne koki a pa fè sa.
Se konsa, ki ka konsiderableman avantaje pou pwogram.
C-koki a aktyèlman fè sa yo gen ranje men li pa gen yon anpil nan lòt karakteristik sa yo.
Kokiy yo Bourne-kalite pral egzekite pi vit
si yo pa gen karakteristik yo ki gen entansyon pou itilize entèaktif.
Ou chaje bagay yo pou yon objektif; sa a charj yo desann pou yon lòt rezon.
Genyen ki komès-off la.
Moun sa yo ki karakteristik ki fè yo gen entansyon pou itilize entèaktif
reyèlman yo nan ti kras oswa ki pa itilize pou scripting.
Li posib yo sèvi ak yon entèaktif sub-koki jis tankou yon sèl la mwen te kòmanse gen
li teste soti kòmandman kote ou gen entansyon itilize nan yon script.
Sa a ki sa ou pa kapab fè ak pèrl. Ou ka fè l 'ak kokiy yo.
Menm estrikti yo tankou pou pasan ak pou fè yo ka kouri epi youn.
Yo se detanzantan itil nan kouri epi youn,
men gen plis chans w ap itilize yo devlope yon script.
>> Alyas.
Sa a se pral fè sou C-koki la.
Istwa mekanis ki kote ou jwenn tounen nan pi bonè kòmandman
oswa pati nan yo ke ou te deja kouri.
Yon fwa ankò, sou C-koki a, koki a Bourne ak Korn koki a gen bagay sa yo,
men mwen pa pral jwenn nan yo.
Se konsa, isit la gen kèk anpren itil ke mwen gen.
Olye pou yo sezisman ls - li nan yon lòd komen -
jis tape l ak sove tèt ou 1 karaktè.
ls ak divès opsyon, tout moun sa yo travay.
Remake byen ke sa yo definisyon gen quotes bò kote yo.
Nan ka sa yo, quotes yo yo se pa nesesè.
Si ou ka defini sa yo anpren san yo pa quotes yo, li ta toujou travay.
Yo rekòmande.
Gen sitiyasyon kote ou pa kapab itilize quote la
paske ou vle yon bagay yo rive ki quote la ta anpeche.
Pafwa ou ka site yon pati nan definisyon an men se pa tout nan li.
Li la tou rekòmande pou yo sèvi ak quotes sèl olye ke quotes doub.
Double quotes gen efè sou definisyon varyab,
patikilyèman sa ki lakòz yo ap evalye olye ke rete l '.
Poukisa nou ta vle yo sispann evalyasyon an?
Ak ki jan quotes fè sa pou nou?
>> Isit la se yon lòd ki ou ta ka jwenn ki enteresan.
'Ls g *'
g *, kòm pwobableman ou konnen, se yon ekspresyon mask
pou tout non yo dosye ki kòmanse ak g.
Si mwen jis ekri nan yon lòd ls g *, mwen pral jwenn yon lis tout moun sa yo non nan anyè mwen an kounye a.
Si m 'defini ki alyas kòm li se isit la ak quotes yo,
li pral kouri kòmandman sa a nan anyè ou ye kounye a kote w ap kouri li.
Men, si ou kouri definisyon an alyas san yo pa quotes yo,
li pral evalye mask g * an lè li kouri bay lòd defini sa a.
Se konsa, definisyon an nan alyas a pral ls ki te swiv pa lis la nan dosye nan anyè a
nan ki se yo lòd, ki alyas egzekite,
kèlkeswa kote ou aktyèlman gen entansyon kouri lòd la.
Sa a se pa nan anpil itilize, ak quotes yo yon sèl anpeche evalyasyon an nan asterisk la.
Se konsa, ou jis jwenn definisyon ke yo te ls g la *.
Lè sa a, lè ou kouri alyas a, lgs, li Lè sa a, mete sa deyò.
Koulye a, pa gen okenn quotes, epi li pral evalye asterisk la lè ou kouri lòd la alyas.
Se konsa, sa a, se yon sèl bagay.
Double quotes ta gen ki efè menm isit la,
men gen kèk lòt ka nan ki quotes doub pa t 'vle travay byen.
>> Isit la se yon lòt.
Ou ta ka konnen lòd Seyè a grèp.
Ka bay lòd la grèp dwe itilize yo analysis yon dosye pou liy ki gen sèten strings.
Se konsa, kite a ale sou isit la epi mwen pral sòti nan koki Bourne m 'yo.
Oke. Isit la nan yon dosye.
Se pou nou di li nan strings abc grèp. Gen li ye.
Si m 'fè grèp zddd, mwen jwenn pa gen anyen. Oke.
Se konsa, li jwenn yon fisèl, li rapò, li pa jwenn yo, li pa rapò sou sa.
Li pwodui nenpòt ki liy ki te gen ke fil sou li.
Gen tout kalite opsyon isit la ki ou ka jwenn nan lòt dokiman an.
Isit la nan yon fason fè li.
Ki sa ki sou yon sèl sa a, alyas grabc 'grèp abc'?
Sa a ale nan gen ladan 1 agiman lè se alyas a defini.
Se konsa, si m 'fè pou isit la, kounye a si m' fè grabc,
kounye a alyas a gen ladan plis pase yo lòd, ki senp. Li tou te gen agiman an.
Se konsa, lwen ki travay.
Mwen gen yon lòt lòd isit la, yon sèl sa a, se konsa sa yo se strings diferan nan gen
epi fè li montre ke sa a pa jwenn anyen gen depi li pa matche ak.
>> E si mwen vle mete nan definisyon an alyas dosye a ke mwen pral nan rechèch
ak mwen vle bay kòm yon diskisyon alyas nan fisèl la ke mwen kap chèche?
Mwen ta ka vle di abc kòm agiman nan alyas m 'yo,
Men, alyas a te deja detèmine dosye a.
Epi sa a, kote ekspresyon sa a vini pous
Avi isit la nou gen grèp jis tankou anvan an.
Nou gen dosye a isit la, strings.
\! ^, Kalite yon ekspresyon enpè, Mwen ta kwè, si ou pa gen pou wè sa a anvan.
Pwen esklamasyon se yon pati nan mekanis nan istwa C-koki.
Li ka sonje pi bonè kòmandman, li ka sonje agiman ak sa ki kòmandman ak pou fè.
Se mekanis nan istwa itilize kòm yon pati nan alyas.
Si ou presize yon liy apre pwen an esklamasyon, li pral al gade nan ki liy nan lis la istwa,
ki nou pa pral antre nan kounye a depi li nan yon antye lòt sijè.
Li posib yo endike yon pati nan yon liy.
Se konsa,! 3:2 ta dwe agiman nan dezyèm nan nimewo lòd 3.
Lambda a isit la nan ekspresyon sa a kanpe pou agiman an premye.
Si ou pa bay li yon endikasyon de ki mande nou fè ap refere li a,
li refere a bay lòd la imedyatman anvan,
ak Lambda a se yon senbòl pou agiman an premye.
Paske li nan Lambda a epi yo pa nimewo a, ou pa bezwen sèvi ak kolon an,
Se konsa,! ^ vle di premye agiman an bay lòd la anvan yo.
Yon ti kras mele isit la.
Nan ka sa a, lè w itilize sa a kòm yon definisyon alyas,
referans a istwa refere tounen nan kòmandman yo nan ki se alyas ki itilize a.
Se konsa, sa a se pral tounen 1 lòd kòm yon operasyon istwa,
men kòm yon operasyon alyas li refere a lòd a nan sa ki ou ta tape,
di, grstrings_file.
Nou gen quotes yo isit la nan li. Ki sa ki nan antislach a pou?
Nan ka sa a, menm jan yon lòt kote, nou pa vle egzekite mekanis nan istwa
pandan y ap defini alyas la.
Si nou pa t 'gen antislach a la, koki a ta rale nan agiman an premye
nan lòd nan dwa anvan li kouri sa a alyas lòd, ki nou pa vle.
Nou vle sa a yo dwe bati nan lòd la alyas yo rele nan yon diskisyon pita.
Quotes sèl pa chape anba yon pwen esklamasyon, referans a listwa.
Petèt ou konnen chape nan ekspresyon vle di chanje siyifikasyon an nan yon bagay.
Nan ka sa a, sa vle di yo sispann yon bagay nan men li te gen yon siyifikasyon espesyal.
Siyifikasyon espesyal entewogasyon, pwen eksklamasyon a se listwa.
Sove ak li pa gen ki sans.
Quotes pa fè sa; antislach fè.
Se konsa, nou ap aktyèlman lè l sèvi avèk 2 nivo pou yo chape nan isit la.
Mwen pral pou avanse pou pi lòd sa a nan fenèt la lòt san yo pa sezisman li
lè l sèvi avèk operasyon koreksyon sa yo, ki ou ka jwenn itil.
Yon lòt bagay isit la mwen pral montre w.
Si ou jis tape alyas ki pa gen okenn agiman, li di ou tout agiman ou.
Sa a se yon pakèt moun sou anpren mwen te deja gen isit la
san konte sa yo ki mwen te lè l sèvi avèk isit la jodi a.
Men, si mwen jis tape ak non an nan yon alyas, li di m 'sa li vle di.
Remake quotes yo yo ap mouri epi li se antislach a ale.
Fisèl sa a isit la se rezilta a nan ke definisyon alyas,
e kounye a, li gen jis! ^ nan li.
Sa a se pral gade nan strings yo dosye pou anyen.
Se konsa, si m 'fè strings grstrings_file, mwen pa t' ba li anyen yo gade pou la,
men li nan gade nan strings.
Li pa t 'jwenn strings yo mo nan strings yo ranpli, men li jwenn ABC.
E li pa jwenn sa.
Se konsa, isit la nou yo bay yon agiman ki frape nan definisyon an nan alyas a,
ki se eleman nan li.
Li nan kote ekspresyon sa a soti nan.
Ou ka itilize plis pase 1.
Lambda a se yon senbòl pou agiman an premye.
Si ou te vle sèvi ak yon dezyèm agiman, ou ta Lè sa a, di: 2.
Gen nan pa gen senbòl espesyal pou agiman, dezyèm lan.
Epi paske w ap itilize yon chif, ou ta gen yo sèvi ak kolon an.
Gen, sepandan, yon lòt chwa isit la.
Siyen an dola kanpe pou agiman an dènye.
Epi paske sa a se yon senbòl, ou ka oblije kolon an.
Se konsa, li ta dwe dènye agiman an nan lis la.
Apre sa, la tou ke yon moun.
Asterisk vle di tout, se konsa sa a se konplè lis la agiman,
epi ankò, ou ka oblije kolon an paske li pa yon chif.
Mwen espere ke w ap tout obsève tout bagay sa a.
>> Mekanis nan istwa ka ale tounen nan liy pi bonè nan lis la listwa.
Ou te kapab fè sa a nan yon definisyon alyas.
Mwen pat janm wè sa a fè.
Li ta gen efè a nan rale soti pi bonè kòmandman nan lis la istwa
lè ou egzekite alyas a, ki ta ka kòmandman diferan
depann sou lè ak ki kote ou egzekite li.
Limajinè ou ta ka vle rale mete deyò tankou yon referans
jis konnen ki sa yon lòd pi bonè te ye a.
Mwen pat janm wè sa rive.
Mwen ta kwè yon moun ta ka vle, men sa a se yon bagay ki fasil.
Gen yon lòt bagay isit la.
Si ou itilize ke referans istwa-di ki kalite,
Lè sa a, sèlman agiman yo nan ki gen se tankou yon referans ap itilize yo.
Si w gen yon definisyon alyas ki pa sèvi ak yon referans istwa-di ki kalite,
si li jis vin nan konmansman an nan lòd la
epi ou gen plis agiman, Lè sa a, anyen ou tape apre sa
yo pral ajoute nan lòd la.
Nan ka sa a, egzanp lan mwen jis te bay la, nou itilize agiman an premye;
nou pa t 'sèvi ak nenpòt lòt moun.
Si lòt agiman yo te resevwa sou liy lan lòd yo, yo pa ta dwe itilize yo.
Se konsa, si ou itilize referans a istwa nan tout, Lè sa a, ou dwe sèvi ak li nan jwenn okenn agiman.
>> Genyen yon lòt bagay isit la mwen jis vle mansyone, an pati parantèz,
sètadi ke sa a mekanis istwa ak pwen an esklamasyon
ale tounen nan orijinal C-koki la.
Tchch a prezante operasyon istwa
ki sèvi ak kalite yo nan lòd ak strings soti nan editè yo,
swa anak oswa vi.
Opinyon pèsonèl mwen se anak se pi fasil pou itilize pou objektif sa a
menm si ou sèvi ak vi pou koreksyon regilye ou.
Gen divès kalite kòmandman anak ki fè yo kounye a adapte pou listwa.
Kontwòl P vin liy lan anvan nan lis la listwa.
Yon lòt P kontwòl ou pral jwenn youn a anvan sa.
Flèch la moute fè menm bagay la.
Kontwòl N vin lòd nan pwochen si ou te deja defiled tounen kèk fason.
Desann flèch fè sa tou.
Ou kapab deplase gòch a dwat ak flèch yo ak plizyè lòt bagay sa yo.
Sa a ka fè pou sèvi ak mekanis nan istwa
pi fasil pase lè l sèvi avèk entewogasyon, pwen eksklamasyon sentaks la,
men ou pa ta sèvi ak ki nan yon definisyon alyas.
Nou pral janbe lòt bò ke gen kèk lòt tan.
>> Varyab.
Ou konnen ki sa varyab yo nan lang pwogramasyon.
Kokiy yo gen yo tou.
C-koki a sèvi ak yo lòd, ki mete yo asiyen varyab,
Se konsa, ki kouche varyab yon nan valè a nan b -
jan mwen te di, yon definisyon initil men yon demonstrasyon pou montre konbyen sa a se itilize yo.
Lòd nan seri yo ap kreye yon varyab si li pa deja egziste.
Paramèt yo pozisyon pou Scripts koki ki kapab konsidere kòm varyab,
men pou yo sèvi ak yo, li règleman pou swiv pou yo se yon ti jan diferan.
Ou pa ka bay yon valè a $ 1 nan kou a nan yon script.
Ou ta gen defini yon varyab nouvo pou ki rezon si kèk nan ou te vle.
Tape mete ki pa gen okenn agiman epi ou jwenn yon lis tout varyab yo kounye a defini.
Li kite yo jwenn sou ak lòt koki m 'isit la ak wè sa ki nou jwenn si nou fè sa.
Byen yon lis long la, dwa?
Scroll up yon ti kras. Gade nan tout sa ki.
Gen kèk nan bagay sa yo defini otomatikman pa koki la.
Koki a kreye varyab la ak bay li yon valè.
Kèk nan yo ki defini nan koki a, men Lè sa a, reenvante pa itilizatè a
dapre preferans l 'yo.
Apre sa, kèk nan yo yo ki te kreye pa itilizatè a depann sou sa l ap fè jou sa a.
Se jis mete ki pa gen okenn agiman.
Genyen yon karakteristik enpè isit la nan bagay sa a.
Gen gen yo dwe swa pa gen okenn espas ant egal a siyen epi non an varyab
ak valè la oswa espas sou tou de bò egal a siyen,
tankou nan yon sèl sa a.
Sa a pa pral travay, ak sa a aktyèlman se yon lòd ki valab
men li pa pral fè sa ou gen entansyon.
Sa lòd pral travay paske si ou jis di mete ak yon non varyab
ki pa gen okenn egal siyen oswa mete epi siyen yon non varyab ak yon egal e pa gen valè,
li pral mete varyab la nan yon valè nil.
Se konsa, mete yon = se yon lòd ki valid.
Lòd nan seri ka defini plis pase 1 varyab sou liy la menm.
Se konsa, lòd sa a isit la gen efè a nan defini tou de a ak b nil valè.
Pwobableman pa sa w vle.
Sa a yon sèl isit la, mansyone pi bonè, ap mennen nan yon erè
paske = b se pa yon ekspresyon ki valid.
Yon non varyab pa kapab kòmanse ak siy pèr la.
E genyen anpil bagay sa yo pi lwen isit la.
Kolon yo te itilize yo chwazi agiman soti nan liy istwa,
epi yo ka itilize - epi mwen pa t 'ale nan anvan - li modifye pawòl sa yo.
Yo kapab tou itilize li modifye varyab koki.
Sa a yon sèl isit la, $ yon, te gen yon valè.
: R ap pran sou yon ekstansyon.
Yon ekstansyon pral anyen apre yon dot,
yon dot ak anyen apre li nan fen a nan yon dosye li an,
sèlman nan fen lis la apre dènye koupe la.
Se konsa, mwen genyen li isit la.
yon se ke. Li pral lage la. O.
Si gen nan pa gen ekstansyon, se sèlman chmen yo apre dènye koupe a, li pral pa gen okenn efè.
yon: h, ki ekspresyon varyab, yo pral pran nan eleman ki sot pase a nan yon lis anyè,
ankò, sèlman apre yo fin dènye koupe la.
Se konsa, / yon / b / c vin / a / b,
men se yon sèl sa a chanje paske eleman nan apre lis la se nil.
Isit la gen yon bagay ki tou mwen vle mete aksan sou.
Kalifikasyon sa yo pa fè rechèch pou egzistans lan nan dosye sa yo.
Yo jis gade pou strings.
Sa yo gen entansyon manipile non ranpli, chmen,
men yo ka itilize sou nenpòt ki fil menm si li pa yon non dosye-a.
Apre sa, yo pa gade pou egzistans lan,
Se konsa, si gen nan pa gen dosye sa yo, / yon / b / c, sa a ap toujou travay.
Si li la nan nenpòt ki itilize a se yon lòt kesyon, men li ap toujou travay.
Varyab yo diferan nan kokiy yo Bourne. Nou pral jwenn ak sa yo ki pita.
Ka siy dola dwe chape jis tankou pwen an esklamasyon ak asterisk la.
Ka siy dola dwe chape ak yon antislach oswa quotes yo yon sèl.
Double quotes gen efè lan enpè nan tout kokiy
nan fòse evalyasyon an nan yon dola siyen ekspresyon varyab.
Se konsa, si li nan ke yo te resi chape kò yon fason, quotes yo doub ka gen efè a
nan sa ki lakòz li ap evalye de tout fason.
Sa a se yon ti kras konfizyon.
Si gen plizyè nivo pou yo chape nan, tankou quotes sèl andedan quotes doub
oswa quotes double andedan quotes sèl, ou ta dwe teste yo wè sa ki pral rive
nan yon varyab, si w ap lè l sèvi avèk yon sèl.
Moun sa yo ki 2 sitiyasyon - doub andedan nan yon sèl, yon sèl andedan nan doub -
pa nesesèman ba ou rezilta a menm.
Varyab anviwònman, mare varyab C-koki.
Varyab anviwònman yo tou varyab nan C-koki a,
ak yo tou varyab nan lòt kokiy tou.
Nan C-koki a yo, yo yo kouche diferan.
Bagay sa yo mwen te di anvan yo se sou varyab koki.
Varyab anviwònman se yon seri diferan nan varyab
ak eksepsyon de plizyè varyab ki nou rele mare varyab,
ki se trè enpòtan epi n ap jwenn nan sa yo pita.
Varyab anviwònman yo se otomatikman te pase sou
kokiy oswa kòmandman ke yo kouri soti nan koki ou.
Lòt bagay yo se pa. Varyab yo koki, anpren yo pa. Varyab anviwònman yo.
Se poutèt sa nou rele yo anviwònman varyab,
lide a ke yo te ke anviwònman an fin sot pase yo jis koki ou ye kounye a.
Yo ka itilize yo defini bagay pou kòmandman.
Isit la se yon egzanp. PRINTER, LPDEST.
Tou de nan sa yo varyab ka defini yon printer ke yon lòd pral sèvi ak ekri ak lèt ​​detache bagay sa yo.
Si ou gen plizyè enprimant alantou li, ou ta ka vle mete yon sèl nan ou renmen.
Rezon ki fè nou gen 2 varyab se ke diferan kouche nan kòmandman yo te ekri
lè l sèvi avèk varyab sa yo diferan.
Ou ta ka ba yo valè diferan.
Gen plis chans w ap ba yo tou de menm valè a.
Moun sa yo ki bagay sa yo travay paske kòmandman sa yo ki fè enprime
yo te pwograme egzaminen valè yo nan varyab sa yo.
Si yon pwogram pa yo te ekri fason sa a, si li te ekri yo fè yon lòt bagay,
varyab la ta dwe petinan.
Se konsa, sistèm nan fonksyone pa se kap chèche varyab sa yo
chak fwa ou al gade nan yon printer.
Yon lòd ki fè enprime se kap chèche varyab sa yo si li se pwograme ki fason.
Varyab sa yo yo souvan sa defini nan dosye inisyalizasyon ou
men pa nesesèman.
Ou ka defini yo sou liy lan lòd.
Yo kapab defini nan yon lòd.
Yon lòd ki kouri yon bagay ta ka gen seleksyon pwòp li yo nan varyab -
varyab ki inik nan yon pake lojisyèl an patikilye, pou egzanp.
Yo pral defini lè ou kouri ki pake.
Kouman yo varyab sa yo te pase nan yon sub-koki?
Lè se yon sub-koki ekri, li pa ekri nan zòn nan.
Zòn nan nan sub-koki a ki konsakre nan anviwònman varyab
se pa sa ekri pa sub-koki a; yo ekri l la pa fè fotokopi yo.
Lè w kouri yon lòd òdinè, tankou kòmandman sa yo ekri ak lèt ​​detache oswa kèlkeswa sa,
yo kòmanse koupe pa kreye yon nouvo koki.
Koki a kreye yon koki ak Lè sa a, ranplas pati nan li
ak yo lòd, ki ke w ap kouri, ki se yon ti kras konfizyon,
men sa a ki jan kòmandman sa yo jwenn anviwònman varyab yo
yo ke yo Lè sa a, al gade nan pita sou.
Lòd a isit la pou defini sèv a varyab.
Sa a ki jan ou defini li. Li nan 3 eleman: sèv, varyab, valè.
Si ou jis sèv ki pa gen okenn agiman, ki sa ou jwenn?
Yon lis tout moun ki varyab.
Yon fwa ankò, li nan yon lis long bèl ak nan ka sa a, tankou nan lòt moun yo,
varyab sa yo yo defini lajman pa operasyon login mwen pa koki nan tèt li
olye ke pa anyen m 'te fè.
Genyen yon lòt lòd isit la, printenv.
Sa tou simagri soti anviwònman an.
Avi bagay sa a sot pase a isit la, EDITÈ = vi.
Ki di ke si mwen lè l sèvi avèk yon bagay ki rele yon editè
epi mwen pa presize yon editè epi li pèmèt m 'chwa a, li ka ban m' vi.
E si mwen fè printenv EDITÈ? Li di m 'sa li ye.
Dwa anvan sa, te gen yon varyab, mwens.
Sa yo se opsyon défaut ou lè mwen kouri lòd la mwens,
ki montre dosye.
Se konsa, si mwen fè sa, printenv ka pran 1 agiman oswa 0 agiman,
pa plis pase 1.
Gen lòt kòmandman tou, men nou pa ap ale nan jwenn nan tout sa ki jodi a.
Sonje te gen modifye yo pou varyab yo koki tankou: h,
ki pral lage eleman ki sot pase a nan yon chmen,
oswa: R, ki pral lage yon ekstansyon.
Moun sa yo ki kounye a aplike nan anviwònman varyab yo tou. Yo pa t 'itilize yo.
Li itilize yo dwe, ou pa ka modifye. Koulye a, yo kapab.
Se youn nan pwogrè yo ak devlopman yo yo nan kokiy yo sou ane yo.
Mwen te di ke kokiy yo kòm yon pati nan anviwònman yo
ak varyab koki nan C-koki a yo, avèk kèk eksepsyon, kouche diferan.
Ou ka etabli yon varyab anviwònman ak yon varyab koki ak non an menm.
Yo pral varyab diferan; yo ka gen valè diferan.
Chanje valè a nan yon sèl pa pral chanje valè a nan lòt la.
Varyab sa yo, yo tout evalye ak siy an dola - $ yon, $ tou sa.
Se konsa, sa si ou gen sa a? èske w konnen ki youn ou jwenn?
Nan tès mwen an mwen te resevwa varyab la koki,
men sa a se pa dokimante epi ou pa ka konte sou sa.
Se konsa, mwen mande ou, se kreye koki ak anviwònman varyab
ki gen non yo menm yon bon lide? No Okay.
Ki sa ki moun sa yo ki pi gwo eksepsyon nan ki anviwònman an ak koki varyab
ki asosye avèk chak lòt?
Gen sa yo 4.
Lèt majiskil varyab anviwònman tèm,
koki tèm varyab nan lèt piti, di ki kalite tèminal imitasyon.
Mwen jis pwal ale sou isit la ak mwen pral fè eko, yon lòd itil isit la,
$ FÈM $ tèm. Apre sa,.
kstèrm se yon kalite tèminal pou fenèt parèt nan Sistèm x fenèt.
kstèrm-koulè a ​​se yon varyasyon nan ki ki pèmèt koulè diferan.
Poukisa nou defini sa yo? Ki sa ki se sa a bon pou?
Kòmandman ki ordoné ekran an tankou editè a
voye sekans patikilye, rele sekans chape,
nan yon tèminal oswa yon fenèt nan ordoné li ak pou fè.
Moun sa yo ki sekans yo diferan pou diferan kalite tèminal.
Sa a di l 'ki moun yo sèvi ak.
Pafwa gen pwoblèm la.
Ou ta ka vle chanje sa.
Si bagay yo pa ap travay epi, pafwa, se kalite a tèminal mete sa ki mal,
ou kapab ranje li pa rdefini varyab la tèm.
Nan ka sa yo, chanje, yon varyab, varyab la anviwònman oswa varyab la koki,
ta dwe chanje yon sèl la ak lòt.
Mwen te dekouvri nan eksperyans ki chanje tèm nan lèt majiskil
pa toujou chanje koki tèm varyab nan lèt piti.
Sa a se yon ensèk.
Mwen pa konnen si sa a, se toujou vrè. Pifò nan tan an li se pa vre, men li kapab.
Se konsa, si ou fè yon chanjman, jis tcheke ke deyò.
Li pa souvan ke ou bezwen chanje sa valè, men yon fwa nan yon pandan w ap fè.
Anviwònman varyab itilizatè.
Yon fwa ankò, anviwònman varyab nan lèt majiskil, koki varyab nan lèt piti.
Sa a se non itilizatè ou an.
Se sèlman nan sikonstans trè eksepsyonèl
ke ou ta vle chanje sa.
Si non itilizatè ou an se yon lòt moun, li ka voye jete tout kalite bagay sa yo la.
Anyè nan kay la, anyè lakay itilizatè a.
Yon fwa ankò, ou pa ta vle chanje sa.
Avi nan tout ka sa yo ak yon sèl la ki nou ap sou yo kouvri, varyab la chemen,
varyab anviwònman se nan lèt majiskil ak varyab la koki mare se nan lèt piti.
Si w chanje yon sèl, ou ta dwe chanje lòt la.
Sa a jan de obligatwa yo pa kapab etabli kòm ou pa kapab mare 2 varyab,
lòt pase sa yo 4, ak obligatwa a nan varyab sa yo pa kapab pèdi nèt,
ou pa kapab separe yo.
Se konsa, sa yo 4 pè nan varyab yo mare.
Yo toujou ap. Okenn lòt moun yo pral.
Anplis de sa, li ta posib yo kreye varyab ki gen non yo menm
nan ki kalite opoze.
Ou te kapab fè yon tèm varyab koki nan lèt ti
oswa yon anviwònman varyab tèm nan lèt majiskil.
Moun sa yo ki varyab ta dwe endepandan nan sa yo varyab pè
epi yo ta dwe endepandan de youn ak lòt.
Mwen pa ka imajine poukisa ou ta fè sa sof si ou vle konfonn moun.
Sa a yon sèl isit la, varyab chemen, sa a se yon yon sèl vrèman enpòtan.
Yon lòt bagay isit la se ke kapab genyen ka
nan varyab ak menm jan an non Couplet ki pa mare yo yonn ak lòt.
Kapab genyen varyab, tòti ak koki, nan kapital ak ti lèt yo.
Baze sou ke non, ou pa konnen si varyab sa a se yon varyab koki
oswa yon varyab anviwònman, epi yo ap pa mare yo yonn ak lòt.
Se konsa, ki kalite pè non pa vle di mare varyab.
Varyab nan chemen, ki mwen te montre anvan,
se yon lis chmen nan ki koki a sanble pou kòmandman.
Se pou nou jwenn sou nan fenèt sa a isit la epi nou pral fè eko $ PATH, lèt majiskil -
varyab anviwònman - eko chemen $, lèt ti - koki varyab.
Remake lis la nan repèrtwar se menm bagay la. Sa yo mare.
Chanje yon sèl, ou chanje lòt la.
Nan varyab la anviwònman eleman yo yo separe pa kolon. Remake.
Varyab yo koki yo separe pa espas.
Varyab anviwònman Sa a se yon fisèl sèl.
Varyab nan koki se yon etalaj.
Bourne koki a pa t 'gen ranje.
Bach fè, men sa a se deja yon pati fiks nan koki an.
Sa a se yon fisèl sèl epi yo pa yon etalaj.
C-koki a te toujou genyen ranje.
Ranje yo se pi fasil nan travay avèk yo.
Ou ka al gade nan pati ki gen nan li.
Chemen $ Se konsa, eko [1] ak mwen jwenn / Uzr / bin, eleman a an premye.
Yon fwa ankò, sonje dola siy kanpe pou eleman ki sot pase a nan lis la listwa.
Kisa k ap pase a? Li te eseye jwenn siy dola kòm yon senbòl varyab.
Mwen chape anba l '. Wouch. Li pa ta pran ki swa.
Gen kèk nan bagay sa yo pa travay byen.
Petèt nou pral jis kite ke deyò.
Asterisk refere a tout bagay la, men sa a ki sa ou jwenn si ou pa presize yon eleman.
Yon lòt fason ke varyab etalaj yo ka manipile,
kantite eleman a, 7 eleman.
Isit la nou mete siy nan liv anvan non an varyab.
Isit la nan yon lòt. Li mete yon siy kesyon la.
Sa se yon valè lojik. Sa endike ke varyab la ki egziste.
Li nan yon lòt fason nan travay ak varyab.
Sa, bò wout la, pa gen yo dwe genyen yon varyab etalaj.
Ki ta ka gen nenpòt ki varyab.
Men, si m 'fè, gen nan pa gen varyab sa yo ak mwen jwenn yon 0.
Yon lòt ti bagay gen sou evalyasyon varyab.
Retounen nan yon sèl sa a isit la, si pou kèk rezon ou te vle travay avèk sa a
olye ke travay ak etalaj la, varyab la koki,
gen kòmandman ki ka separe tout bagay sa yo ki baze sou kolon an.
An reyalite, si w ap ale nan dwe ap fè sa a nan frape koki a posib,
kèk kalite yon script, ki ta ka pwobableman kijan ou ta fè li.
Men, nan C-koki a li nan pi fasil yo sèvi ak etalaj la.
Nan Bourne koki a, varyab yo plase nan yon ekspresyon yon sèl tankou sa a,
tankou wout la ou ta ka bay yon varyab nan yon lang pwogramasyon,
ak isit la dwe gen pa gen okenn espas.
Li nan nesesè ke li ka jis 1 fisèl.
Nan kokiy yo Bourne-kalite yo, tout varyab yo se varyab koki.
Varyab anviwònman yo se yon sou nan varyab yo koki.
Yo distenge soti nan ki pa anviwònman varyab yo pa ekspòte.
Yo lòd, ki fè sa se ekspòtasyon, tankou ekspòtasyon PRINTER.
Si nou yo te defini tankou yon varyab,
si nou te vle yon lòd enprime jwenn li, li ta gen yo dwe genyen yon varyab anviwònman,
e ke sa a ki jan nou fè li se youn.
Isit la gen nan yon bagay kalite konfizyon.
Ekspresyon sa a, ekspòtasyon nan anviwònman an, proceed soti nan sa a konsèp koki Bourne,
ak ankò se ke ekspresyon yo itilize nan deskripsyon nan C-koki a,
kote ki pa gen lòd tankou ekspòtasyon.
Si ou jis di ekspòtasyon pou kont li, ou jwenn yon lis ekspòte -
Se konsa, si mwen jis ekspòtasyon isit la, okenn bagay sa yo.
Oke, gen nou ale.
Tout bagay sa yo, nan chemen an, yo tou sa defini nan koki an.
Mwen pa t 'defini nenpòt nan sa yo pa tèt mwen.
Koki a fè tout kalite bagay sa yo pa limenm.
Li ta dwe fè bagay sa yo otomatikman.
Nan bach oswa Korn koki, ou ka kouri yon lòd tankou sa a,
ki pral tou de bay yon varyab se yon valè ak ekspòtasyon li nan 1 lòd.
Nan koki a Bourne yo gen yo dwe kòmandman separe tankou ekspòtasyon yon.
Isit la se yon lòt aspè sa a, se konfizyon.
Seri lòd la nan C-koki a defini varyab
ak ki pa gen okenn agiman fè w konnen kisa valè varyab yo 'yo.
Nan bach koki a, ansanm lòd la ki pa gen okenn agiman fè menm bagay la,
Men, se avèk agiman li fè yon bagay byen diferan.
Se konsa, sa yo, se agiman yo divès kalite isit la.
Gen kèk nan sa yo se anviwònman varyab, kèk nan yo yo varyab koki.
Yo tout yo varyab koki vrèman. Gen kèk nan sa yo se anviwònman varyab.
Ka mete lòd nan ak agiman dwe itilize yo opere
sou paramèt yo pozisyon nan yon script,
ki se yon fason pou trape yo tout nan yon fwa.
Nou pa ka vrèman ale nan ke jodi a.
Li kapab tou itilize yo chanje konpòtman koki.
Patikilyèman nan bach gen varyab ki pral detèmine kijan koki a konpòte li.
Lè sa a, tou jis yon sèl sa a bay lòd ke ou ta ka wè, bay lòd sa a.
Ki enprime nan liv ki te swiv pa varyab ak kalite varyab ki itilize nan Korn ak bach kokiy yo.
Li pa obligatwa men li ka dwe itilize yo mete restriksyon sou valè yo nan varyab,
ki kapab itil yo anpeche erè, epi li san patipri komen.
Se konsa, mwen jis mansyone ke nan ka ou wè li yon kote.
Kote lòd la.
Sonje mwen mansyone pi bonè kote lòd nan C-koki a, nan
ki ka di ou ki kote yon chmen lòd.
Isit la se sibstitisyon lòd.
Ou ta dwe jwenn sou klavye ou yon kote yon karaktè ki sanble ak sa a.
Kote a sou klavye a ki pral varye.
Nou te rele l 'backquote. Li nan sou gwosè a nan yon quote.
Li ale sou bò goch anwo pi ba dwat.
Isit la sou Mac klavye m 'li an nan kwen anwo sou bò gòch.
Ka ki N. dwe itilize yo egzekite yon lòd ki nan yon lòd.
Si ou gen yon ekspresyon andedan backquotes,
ki ekspresyon ki yon lòd, li kouri.
Pwodiksyon an nan ki lòd
se lè sa a ranplase pou ekspresyon an backquote tout
andedan yon lòd ankò ki Lè sa a, kouri ak ke randman
kòm yon pati nan fisèl li yo nan agiman ak pou fè.
Isit la se yon lòd ki itilize sa.
Se pou yo demontre operasyon an isit la.
Ann al moute isit la, pran backquotes yo.
Kontwole yon ap resevwa m 'nan konmansman an nan liy lan ak koreksyon sentaks la anak.
Se konsa, lwen chmen a se sa ki kote fè,
Men, lè m 'fè li tankou sa a, li Lè sa a, ploge nan ki lis chmen
nan plas sa a ekspresyon backquote antye ak kouri ls-l sou yo.
Kalite pratik, huh?
Se konsa, sa a, se yon sèl bagay byen òdone. Sa a ki jan backquotes travay.
Koulye a, kite a desann yon ti kras pi lwen.
Sa yo se anpren. Mwen aktyèlman sèvi ak sa yo.
M ap eseye jwenn nan sa a ak 1 koreksyon operasyon.
Oke.
Koulye a, kite a wè ki jan moun ki definisyon 'soti a.
alyas lwh di m 'kouman li defini.
Atansyon li nan jis sa a, men quotes yo deyò yo te wete
epi li se pwen an esklamasyon pran an.
! *, Lis konplè sou tout agiman yo.
Nan yon definisyon alyas li pral aplike tounen nan kote mwen sèvi ak sa a.
lwh kch frape. Oke.
Gade ki jan ki travay? Li sove m 'kèk sezisman.
Ann al moute yon ti jan jis mansyone yon lòt bagay isit la.
Avi isit la kokiy sa yo diferan. Mwen ta dwe te mansyone sa a anvan.
Kch la gen yon 2 sou isit la ak pou fè / bin / tchch.
Nou te kapab etabli pa lòt mwayen ke moun yo aktyèlman dosye a menm.
Sonje mwen te di si ou tape SH ou jwenn frape.
Kalite sa a epi ou jwenn sa a.
Men, moun ki pa yo lye. Moun sa yo ki gen menm yon sèl la.
Apre sa, sa a se pa ki kalite dosye ki ka rele yon lòt.
Se konsa, sa yo se dosye apa; yo menm ki C-koki yo se dosye a menm.
Tounen desann isit la, lòt yon sèl la isit la, alyas sa a,
sonje ke nan kouri lòd sa a, dosye-a.
Sa alyas kouri sa a. File di ou di ki kalite a nan yon dosye.
Se konsa, fwh kch frape. Oke.
Sa a pwodiksyon an nan dosye lòd la.
Mwen pa konnen si ou konnen ki sa sa vle di isit la,
Mach-O binè inivèsèl ak 2 architectures.
Gen 2 kalite processeur posib nan Mac,
ak kèk pwogram yo te ekri pou kapab kouri ak tou de,
ak dosye yo lòd, ki kapab detèmine ki, Se konsa, se sa ki sa sa vle di.
Tou de nan dosye sa yo te ekri ki fason.
Se konsa, nou wè ki jan alyas a travay, nou wè ki jan backquote a travay,
nou wè ki jan ls yo ranpli reyèl oswa dosye travay.
Sa a pa ta ka travay. Eseye "kote ki kote" ak "lwh kote". Oke, kite la eseye sa a.
kote kote.
kote a se yon koki bati-an.
Sonje pi bonè nou te montre ke bach pa t 'gen kote.
Si ou tape kote nan frape koki a, ou jwenn yon mesaj erè.
Se jis nan yon pati nan koki a olye ke yo te yon lòd ki apa a.
Kisa k ap pase si mwen di ki kalite lwh kap chèche ki kote? Wè sa ki rive la.
Kouri kote kote, te gen pwodiksyon sa a, epi Lè sa a, yo te eseye kouri ls
kòm l sou kote a se yon koki bati-an.
kote ki gen la, men yo menm ki lòt pa egziste.
Okenn nan sa yo egziste, aktyèlman.
Se konsa, ki pa toujou travay, epi li tou montre ki jan kèk bagay
pa fè byen sa ki ou ta ka gen te panse.
Ann al desann yon ti kras pi lwen isit la.
Sa a isit la se nan frape. Sa se tou sibstitisyon lòd tankou backquote la.
Men, kontrèman ak backquote, li sèvi ak style varyab sa a.
Genyen yon kantite nan ekspresyon ki kòmanse ak yon siy dola,
ak pandan y ap sa yo yo pa varyab yo, yo prete pou yo sèvi ak siy a an dola
ki endike yon ekspresyon nan kèk kalite.
Ki ka antoure pa parantèz oswa parantèz oswa parantèz doub,
ki te gen yon objektif diferan.
Parantèz Single isit la se yon sibstitisyon lòd jis tankou backquotes yo.
Double parantèz se aktyèlman yon operasyon aritmetik.
Gen lòt sentaks, lòt operasyon yo.
Backquote sentaks a disponib nan frape.
Sepandan, yon sèl sa a se pi preferab. Li nan pi fasil pou li e pou li pèmèt nidifikasyon.
Ou ka gen andedan $ (lòd) gen yon lòt lòd,
yon bagay tankou -
Mwen jwenn yon lis la.
Sa ta ka travay si mwen te gen backquote la tou.
E si mwen vle fè yon bagay tankou -
Pwobableman ou pa ta aktyèlman sèvi ak lòd sa a,
Men, sibstitisyon lòd sa a entèn eko non yo nan tout dosye ki kòmanse ak yon,
Lè sa a, yon sèl sa a kouri ls-l sou moun dosye,
ak Lè sa a, yon sèl sa a jis eko pwodiksyon an.
Pwobableman ou pa ta fè sa a; ou ta jis fè eko a oswa ls,
men sa a montre ki jan nidifikasyon a nan kòmandman travay.
Se konsa, jis yon lòt karakteristik isit la.
Mwen mansyone sa a pi bonè, ke lè ou gen kote nan C-koki a,
tape travay nan kokiy yo Bourne-kalite pou lokalize kòmandman.
Bati-an kòmandman, jis sa mwen te di a.
Kòmandman se yon pati nan koki a, tankou kote.
Lè koki a ègzekutra yon lòd tankou ls, li lokalize li nan chemen an,
jwenn li nan kèk anyè yon kote,
li ki nan memwa, kreye yon nouvo koki,
li ls yo lòd oswa kèlkeswa sa nan koki a
kote anviwònman varyab yo yo deja chita,
ak Lè sa a, li transfere ekzekisyon nan li.
Bati-an lòd, kòd la pou sa lòd ki andedan koki a,
Se konsa, koki a jis kòmanse egzekite yon pati nan Kòd pwòp li yo.
kote se tankou yon lòd. Li aktyèlman vin pi vit.
Li pa bezwen li anyen nan memwa; li a deja nan memwa.
Bati-an kòmandman ap toujou gen priyorite sou kòmandman ak non an menm.
Kòmandman yo ki nan repèrtwar nan chemen an ka gen menm non yo,
kòmandman nan repèrtwar diferan, depoze nan repèrtwar diferan.
Youn nan ki fèt pi bonè nan chemen an se youn nan ou pral jwenn.
Si gen yon lòd bati-an, ou toujou jwenn li.
Genyen okenn fason bay li yon priyorite pi ba pase yon lòd nan chemen an.
Si ou vle jwenn ki bay lòd chemen, ou ka tape chmen la plen.
Si te gen yon lòd kote nan chemen an yon kote,
ou ta ka tape / bin / ki kote ak ki ou ta jwenn li.
Si ou pa vle tape chmen a tout antye, ou ta ka defini yon alyas.
An reyalite, si ou te bay alyas an non an menm jan ak yo lòd, ki bati-an, li ta travay
paske se definisyon an alyas evalye
anvan koki la detèmine ke li nan yon lòd bati-an ki ta dwe egzekite.
Lè sa a, sa a vin yon ti kras pi plis konplike ak kèk kòmandman isit la.
Ka a nan kèk kòmandman yo aktyèlman bati-an kòmandman ak nan chemen an.
Youn nan yo se eko, yo lòd, ki mwen jis itilize yon ti tan de sa nan moun ki egzanp.
Repete apre lòt fin se yon lòd nan chemen an epi li nan tout koki.
Yo pa nesesèman tout konpòte menm jan an.
Li te orijinèlman yon lòd sèlman nan chemen an.
Li te bati nan kokiy yo pita.
Se paske gen yon opsyon ki depann sou anviwònman an
ak opsyon ki disponib nan liy lòd, kòmandman yo bati-an
yo te ekri fonksyone menm jan ak yo lòd, ki ki te nan chemen an,
li nan fasil yo ta yo te ekri nan fason sa a
si yo lòd, ki pa te deja ekri pou chemen an.
Se konsa, sa a gen efè segondè yo. Istwa li gen efè isit la.
Gen opsyon la.
Genyen tou yon opsyon yo defini pa yon varyab nan tchch a rele echo_style.
Sa a youn nan varyab sa yo ki ka chanje fason ke eko travay.
Gen kèk lòt ka nan ki ou ka bay yon varyab
ki chanje fason ke operasyon an koki, ki gen ladan yon lòd bati-an, travay.
Li pa ta afekte nenpòt lòt bagay
depi lòt kòmandman pa gen aksè a varyab yo koki,
sèlman anviwònman varyab yo.
Men, operasyon koki ka li varyab yo koki.
Sa pa pral travay pou kch. Sa a sèlman tchch. Se youn nan amelyorasyon yo.
Analyse gen sekans lè li evalye metacharacters,
lè li evalye varyab, anpren, referans listwa.
Genyen yon sekans patikilye pou bagay sa yo.
Si li fè sa bagay sa yo nan yon sekans patikilye
epi vin nan yon bagay sa a, se yon ekspresyon de yon sòt
ki te deja te evalye, li pa pral evalye l 'ankò.
Si li vin li, Lè sa a, li pral jis pase sou pèsonaj yo.
Se konsa, si evalyasyon nan kèk ekspresyon tankou sibstitisyon lòd
oswa varyab oswa kèlkeswa sa bay monte nan yon ekspresyon
ki ou ta vle ap evalye,
ki pral travay sèlman si ke evalyasyon fèt pita nan sekans lan.
Mwen espere ke mwen te klè la.
Sa sekans analyse, yon operasyon nan C-koki a,
se pa menm bagay la pou bati-an kòmandman kòm li se pou moun ki bati-an-kòmandman.
Mwen pa si sou bach la.
Pou egzanp, si yon varyab koki pwodui yon referans istwa,
li pwobableman pa ta tounen nan istwa a.
Li ta jis jwenn pwen an esklamasyon.
An reyalite, nou ka jis eseye ki soti kounye a.
mete yon = epi n ap gen yo mete sa a nan la.
Oh, rete tann. M regrèt. M 'te fè sa a nan bach la. Mwen te vle fè l 'isit la.
Al gade nan, se konsa li pa t 'evalye ki referans istwa
paske li te deja sot pase pwen nan evalye ekspresyon istwa
lè li evalye varyab la.
Se konsa, sa a, se 1 efè analyse.
Li di ankò: bati-an kòmandman yo pa fè menm jan an.
Tout dwa. Ann ale nan youn nan pwochen isit la.
Sa a se entansyon yo dwe 1 liy, men li la fè li pi fasil li.
Ki sa ki ki fè?
Ou ka sonje ke nou ka evalye Stars kòm djokèr fichier,
e gen lòt djokèr fichier tankou make la kesyon ak ekspresyon bracket.
Se ki kalite evalyasyon yo rele globbing.
mete noglob nan konmansman an nan lòd sa a di pa fè sa.
dezarme noglob di tounen nan fè sa.
Remake byen ke glob seri pa ta gen sa.
Nan lang òdinè, mete glob oswa dezarme noglob ta sanble yo gen ekivalan,
men isit la se pa. Li nan dezarme noglob.
Koulye a, tset. tset te kanpe pou mete tèminal.
Li pa nan itilize ki souvan kounye a, men anvan fnètr sistèm te vin disponib
epi ou te gen yon tèminal yon sèl, ou ta ka genyen detèmine kalite a.
Men, si yon bagay t'ap vini sou plis pase yon Ethernet oswa nan rezo a,
ou ta ka vle di li nan yon vt100.
VT100 se kalite yon estanda nan biznis la tèminal. Li vini soti nan tèminal la DEC.
Si ou jis fè modèm - remake sa? Sa a ale tounen yon fason, huh?
Se konsa, si nou jis tset sou isit la,
si mwen jis fè tset, li te re tèminal m 'yo, men ou pa t' wè anyen.
Li pa t 'reyèlman chanje anyen.
-S
Oke.
sèv KONDISYON kstèrm-koulè.
Nou deja konnen sa ki te tèm nan mete fason sa a, se konsa ke pa t 'chanje.
Sa a se fason a nou ta vle fè li.
Men, remake ke sa a lòd, tset-a, jis pwodiksyon kòmandman sa yo. Li pa t 'kouri yo.
Li pa t 'kouri kòmandman sa yo, li pwodiksyon yo.
Se konsa, sa a se gen entansyon pwodui kòmandman ki pral Lè sa a, dwe kouri.
Ou sonje lòd la nan ki dosye mwen jis te montre ou te gen yon K nan li.
Se konsa, kite a fè sa.
K a reprim kèk pwodiksyon, men sa pa gen pwoblèm isit la, jan ou ka wè.
Mwen jis fè sa montre w ke li pa t 'gen pwoblèm.
Sa a se nan backquote sentaks.
Remake byen backquote a isit la, backquote isit la.
Mwen omissions bagay sa yo isit la.
Sa yo se ka nan di li sa yo dwe fè
nan ka a nan kalite patikilye nan tèminal -
Ethernet, rezo, modèm, ki sa ki gen ou.
Li pa enpòtan isit la paske nou ap pa aktyèlman fè nenpòt nan bagay sa yo.
Mwen jis ilistrasyon lòd la.
Si m 'fè sa a ak backquote a, ki sa mwen pral jwenn?
Epitou avi isit la ke sa a gen ladan noglob a ansanm ak noglob la dezarme,
se konsa moun yo kounye a se redondants nan definisyon an.
Sa pa te toujou vre, men kounye a yo ap enkli nan lòd sa a.
Men, kite a wè sa ki rive si mwen fè sa
epi ale nan konmansman an nan liy lan ak kontwòl A ak mwen fè sa.
Oke, mete: Kòmandman pa jwenn. Sa a kalite enpè, se pa li?
seri a se yon lòd byen li te ye-. Li nan yon pati nan koki an.
mete: Kòmandman pa jwenn? Poukisa se sa?
Hmm. Oke, kite la panse osijè de sa a.
Li kouri yon sibstitisyon lòd backquote,
ak ki fèt nan yon pati sèten nan sekans nan analyse lòd la.
seri a se yon lòd bati-an.
Se konsa, pa tan an li fè sa ki sibstitisyon lòd,
li nan deja pran sot pase pwen an pou idantifye bati-an kòmandman.
Se konsa, li trete mete kòm si li te yon lòd nan chemen an.
Evidamman di, li pa jwenn li epi ou jwenn yon erè.
Byen. Genyen yon egzanp nan sekans analyse.
Ak sa nou fè sou sa?
Avi sa a bay lòd trè enteresan isit la, eval.
Mwen mande ki sa ki fè.
Si ou gade nan manyèl la - ak kite yo jis fè sa
yo montre ki jan konfizyon manyèl sa yo, se -
moun tchch, manyèl konfonn, jwenn bagay sa yo isit la se pa fasil swa.
Isit la nou ale, eval ARG, pou nou ka gen 1 oswa plis agiman
epi gen yon lis de bagay sa yo la.
Trete agiman yo kòm entrain koki a
ak ègzekutra kòmandman yo ki kapab lakòz nan yon kontèks la nan koki an kounye a.
Sa a se anjeneral yo itilize al touye kòmandman pwodwi kòm rezilta a nan lòd
oswa varyab sibstitisyon paske analyse fèt anvan sibstitisyon sa yo.
Bon nèt.
Ak isit la yo menm, al gade nan yo lòd, ki tset pou yon echantiyon itilize
tankou sa yo mwen jis te montre ou.
Koulye a, mwen gen jwenn fenèt la tounen nan yon plas itil.
Se pou nou jwenn sou isit la ak nou pral wè se ke eval itilize jis anvan sa a.
Se konsa, kite a wè sa ki rive si nou mete - isit la nou ale avèk flèch yo ak sa yo ki lòd
ak Kontwòl A nan konmansman an, eval.
Oke, kidonk li travay.
Lè w ap fè eval, li pran sa ki vin apre l ', li fè li yon lòd.
Sa a pèmèt ou esansyèlman analizan li de fwa.
Seksyon sa a isit la kouri lòd sa a andedan backquotes yo,
vin pwodiksyon an.
Se Sòti sipoze kouri tankou moun ki kòmandman isit la tankou sa yo
nan yon sèl sa a ak yon sèl sa a.
Se konsa, moun kòmandman yo kounye a se isit la nan sekans sa a,
men sa yo bati-an kòmandman e li pa kapab jwenn yo touswit.
Se konsa, nou ale nan eval, eval chwazi ki leve, kòmanse tout bagay la tout lòt peyi sou ankò, li li fonksyone.
Yon egzanp tou de backquoting, eval, analyse, konsekans nan analyse,
ak yon lòd ki se pwobableman nan anpil ti sèvi ak ba ou sèjousi.
Oke. Tout dwa, umask.
Se pou yo gade sou kòmandman sa a isit la, umask 022. Mwen mande ki sa ki fè.
Se pou nou jis tape umask pa gen anyen apre li. 22. Oke.
022 epi fè l 'ankò.
Kòm ou ta ka genyen dvine, umask ki pa gen okenn agiman di ou mask la ye a;
umask ak agiman fè li sa, men sa ki te yon sèl la mwen te deja gen.
Ki sa ki 022 vle di?
Sa yo se isit la pwoteksyon yo pou yon dosye.
Yo detèmine ki moun ki pèmèt yo li ak ekri oswa egzekite dosye a.
Pwoteksyon yo rele yo tou autorisations.
R la kanpe pou Li, w la pou ekri,
ak x la, ki se pa prezan la, kanpe pou egzekite.
Genyen 3 kategori la.
3 dènye eleman sa yo nan kategori a nan itilizatè. Moun sa yo ki aplike nan m ', itilizatè a.
Sa yo 3 isit la aplike nan gwoup la.
Dosye a ki dwe nan 1 gwoup, itilizatè kapab fè pati nan plizyè gwoup,
Men, si itilizatè a se nan gwoup la yo ki sa a ranpli ki dwe,
Lè sa a, pwoteksyon sa yo ap aplike nan li si li pa itilizatè a.
Lè sa a se yon sèl tout lòt moun.
Kategori sa yo se mityèlman eksklizif.
Pwoteksyon ki itilizatè aplike l ',
pwoteksyon ki gwoup aplike nan manm gwoup la lòt pase itilizatè a,
ak pwoteksyon ki lòt aplike sèlman nan moun lòt pase itilizatè a ak manm yo an gwoup.
Si ta gen yon r oswa aw oswa yon x, sa vle di ke pwoteksyon yo akòde.
Si gen nan yon tirè, sa vle di li se pa.
Gen aktyèlman se lòt bagay ki ka mete nan isit la san konte sa yo,
nan Tanp kote mwen pa pral jwenn nan kounye a.
Umask a defini yon default pou dosye ke ou kreye.
Apre sa, kòm yon mask, fondamantalman li di Bits yo ke ou pa mete.
Ki jan sa a te vin Bits?
Si ou panse nan chak nan sa yo kòm yon nimewo oktal,
sa a se ti jan a 1, sa a se 2s yo, sa a se 4s yo.
Se konsa, 0 jiska 7
ap dekri ki sa konbinezon de r a, w la, ak x la ou gen pou sa yo 3
ak Lè sa a, yon kantite ki sanble pou sa yo ak Lè sa a, pou sa yo.
Se konsa, 022 vle di 0 pou lòt, 2 pou gwoup la, 2 pou itilizatè a.
Men, sa a se yon mask. Mask a se ki sa ou pa genyen.
Mwen regrèt. Mwen jis te ban nou bagay sa yo nan lòd la mal.
Li nan 3 a an premye. Sa yo 3 se itilizatè a, sa yo 3 se gwoup la, sa yo 3 se lòt la.
M regrèt mwen te ban nou sa yo nan lòd la mal.
0 a, ki se premye a nan tout sa yo, pa montre valè a,
Men, si yon nimewo se pa la, li nan yon 0.
Sa vle di tout 3 nan sa yo ta dwe pèmèt.
Remake nan yon sèl sa a an patikilye x la pa pèmèt.
Rezon ki fè la se ke koki a se kapab nan pou detèmine si
si wi ou non yo ta dwe yon dosye dwe egzekite oswa ou pa.
Depi sa a se pa yon dosye ègzèkutabl, li pa t 'mete x la.
2 vle di la ki ekri pèmisyon, dezyèm kategori a isit la,
youn nan nan mitan an, yo refize.
Se konsa, ankò, sa yo, se bagay sa yo ke li refize.
Oke, se x pèmèt men se pa isit la paske li pa ègzèkutabl
ak Menm jan an tou pou lòt moun yo.
Se konsa, ki se yon umask komen.
Yon lòt yon sèl komen se 700 - bay tèt ou tout bagay ak pa gen yon lòt bagay.
Apre sa, gen lòt posiblite.
Mwen pral tounen nan sa. Lè l sèvi avèk istwa a mwen kapab fè rechèch tounen pou sa, lwh la.
Oke. Se konsa, isit la, sa yo, se kokiy yo.
Bach, mèt kay la ki moun ki kont sistèm, ka fè tout bagay.
Gwoup ak tout lòt moun kapab fè li oswa egzekite men sèlman pa ekri.
Yon sèl sa a pa menm pèmèt mèt kay la yo pou yo ekri li.
Si mèt kay la te vle yo pou yo ekri li, kont lan sistèm,
li ta chanje pwoteksyon la an premye.
Men, ankò, umask la kouche default la pa anvlòp la tankou l ',
pa endike Bits yo sa pa pral dwe mete.
Sa a se tipikman nan youn nan dosye inisyalizasyon ou a, ki se cshrc la. Pou C-koki a
oswa pwofil la. pou kokiy yo Bourne-type.
Li kapab yon lòt kote tou si gen lòt dosye inisyalizasyon sou sistèm nan.
De tout fason, sa a, se umask.
Genyen yon bagay kalite enpè isit la,
e ke se, poukisa ki gen la yon lòd yon sèl pou sa a?
Si m 'te ekri sa a, mwen ta fè l' yon varyab, umask = kèk valè.
Poukisa gen yon lòd antye jis pou objektif sa a?
Rezon ki fè la se sa a jis ale tounen nan orijin yo nan UNIX.
UNIX te jis kèk pwojè pwogram nan Bell Labs nan lane 1970 yo byen bonè.
Moun ki jis te resevwa ansanm nan pwogram nan.
Yo pa janm gen entansyon li nan vin tounen yon sistèm opere atravè lemond.
Diferan moun te ekri diferan pati san yo pa reflechi anpil
nan ki jan yo te ale nan dwe itilize - olye mouri.
Apre sa, li te vini ansanm tankou sa yo, ak li la toujou tankou ke nan kèk aspè yo.
Se konsa, ki reflete istwa a, e gen toujou enkonsistans sa yo ak eleman enpè nan li.
Oke. Next yon sèl isit la.
Kòm mwen te ekri pi bonè, C-koki a se pa sa vrèman itilize anpil pou pwogram,
byenke li kapab.
Li ègzekutra pi dousman, ankò komès la-a genyen ant sèvi ak entèaktif,
ki gen plis pwosesis ki enplike pase vitès,
sa ki ka fè san yo pa pwosesis la.
Karakteristik yo ki siplemantè ajoute nan koki a Bourne pa Korn a ak Bourne-ankò kokiy
pa sanble yo ralanti yo desann, epi mwen pa konnen poukisa se sa ki.
Li ta ka jis pou pi bon pwogram, men mwen pa nan yon pozisyon yo konnen.
Vitès isit la aktyèlman se pa tankou yon kontra gwo, byenke li se mansyone.
Rezon ki fè la se ke Scripts koki aktyèlman jwenn san patipri vit.
Si gen yon anpil nan kòmandman tankou nan yon pwogram kalkil,
pwobableman ou pa ta fè l 'nan yon script koki.
Operasyon yo gen san patipri ki senp epi dwat.
Sa yo ki mwen te gen eksperyans ki twò dousman
gen pou wè ak repete aplikasyon nan kòmandman dousman.
Byen bonè mwen mansyone editè a kouran SED. Sa lòd se ralanti.
Si ou egzekite SED anpil fwa, ou pral jwenn yon script dousman, men se pa koki a sa a, se ralanti.
Kouri l 'nan Bourne koki a pa pral anpil pi vit pase kouri l' nan C-koki a,
byenke gen nan petèt kèk avantaj la.
Kapasite yo pwogramasyon adisyonèl, nan lòt men an,
yo se rezon enpòtan poukisa ou ta sèvi ak kokiy yo Bourne-type.
C-koki gen karakteristik enpè yo li -
lefèt ke ou pa konnen si yon varyab se yon varyab koki oswa yon varyab anviwònman.
Li kapab anpil konfizyon.
Li nan pa tèlman fasil yo ekri
jis ki baze sou eksperyans ou nan pwogram nan lòt lang yo.
Mwen panse ke ou kapab jwenn kokiy yo Bourne-type plis ki konsistan avèk eksperyans ou.
Gen kèk Scripts, menm si, yo ka dè milye de liy nan longè.
Moun ki mwen te wè yo te itilize pou reparèt sistèm operasyon.
Moun sa yo ki ka egzekite trè dousman, men ou pa kouri sa yo trè souvan.
Se sèlman lè w ap fè reparèt,
ak li a sèlman manadjè a sistèm k'ap fè bagay sa yo,
se konsa li a pa reyèlman anpil nan yon pwoblèm.
Sa yo ki dè santèn de liy ki long aktyèlman egzekite san patipri byen vit.
Mansyone sa a isit la, ki sa ki moun sa yo ki amelyorasyon?
Mwen te deja mansyone yon kèk nan yo - ranje, kalkil,
$ yo () ekspresyon pou kalkil nan frape koki a,
kalite a lòt kote nan sibstitisyon lòd.
Gen diferan kalite kòmandman tès
pa ki ou ka fè tès kondisyonèl sou egzistans lan nan yon dosye w la oubyen lòt bagay.
Dire isit la, lòd sa a isit la.
Ki sa ki fè sa, poukisa okenn moun ta sèvi ak li?
printenv variablename.
Nou konnen ki sa printenv fè. Li di nou valè a nan yon varyab.
Apre sa, printenv variablename pa pral di nou anpil, paske gen nan pa gen varyab sa yo.
Vid.
Men, kite a bay li yon bagay ki gen sans.
Sa a pa gen swa. Oke. Mwen devine mwen pa janm defini sa.
Se pou nou jis tcheke anviwònman m 'yo.
Sa a se yon lòt lòd pa kote ou ka enspekte anviwònman ou yo.
Gen se yon bon bagay EDITÈ fin vye granmoun, youn nan nou te wè anvan.
Ki sa ki ki fè?
Isit la nou gen yon ekspresyon backquote.
Sonje sa a se C-koki la.
Se konsa, printenv EDITÈ pral ban nou yon valè de EDITÈ. Li nan vi.
Lè sa a, li pral mete ke valè nan varyab yon, lòd la ansanm.
Se konsa, koulye a si m 'fè eko $ yon, mwen jwenn vi.
Sa pa sanble fò anpil itil.
Sepandan, li aktyèlman fè sa yo gen yon objektif.
Depi nou pa konnen si yon varyab se yon varyab koki oswa yon varyab anviwònman
lè l sèvi avèk evalyasyon sentaks la siy dola, nou kapab itilize printenv
a asire w ke li nan yon varyab anviwònman.
Se konsa, si te gen yon kokiy varyab editè, sa a ta pa gen vinn li.
Sa a ap travay sèlman ak varyab la anviwònman.
Si te gen yon varyab koki epi mwen te valè li yo,
Mwen ta gen jwenn kèk lòt fason fè li.
Youn nan fason yo fè ki ta ka nan fè mete ak kanalizasyon.
Sa a se youn nan metacharacters yo, karaktè espesyal.
Li voye kèk pwodiksyon an nan seri yon lòt bagay.
Ann wè sa nou ta ka jwenn la.
Pa gen anyen. Oke. Se pou nou jis wè sa ki nan gen tout ansanm.
Li te echo_style, yon sèl la mwen mansyone anvan. Oke, kite la fè sa.
Sonje mwen mansyone anvan, echo_style
detèmine wout la yo lòd, ki eko pral kouri.
BSD kanpe pou Berkeley Creole Distribisyon.
Sa a se Berkeley UNIX a soti nan ane 1970 yo.
Sa a youn nan fason yo ki repete ka kouri.
Anviwònman echo_style ak sa yo ki valè nan TC-koki a ap lakòz eko konpòte yo nan fason sa a.
Se konsa, mete fè sa, men mete sèlman vin varyab koki.
Li pa ta jwenn EDITÈ, ki se pa yon varyab koki.
Pa gen anyen.
Se konsa, sa a, se yon fason nan distenge yo.
Men reyalite a ke ou gen yo ale nan kèk lòd moun lòt nasyon tankou sa
nan distenge varyab koki oswa anviwònman varyab
montre ki kalite nati Inposibl nan C-koki a pou kèk rezon.
Epi, koulye a, dènye e petèt pi piti, sa a se paj sa yo moun.
Moun sa yo ki nan ki moun ou ka konnen, nonm sa a se kout nan lòd pou manyèl.
Paj sa moun pou kokiy yo ki difisil li. Yo ap trè long.
Yo ap òganize nan yon fason ki ka fè l difisil sa yo jwenn sa w ap chèche pou.
Se konsa, si w ap chèche pou yon bagay ki gen yon bi,
ou ka pa konnen si ke bi a se yon varyab koki oswa yon lòt bagay,
Se konsa, ou pa ka konnen ki kote yo gade pou li.
Ou ka gade pou divès kalite strings, men strings yo yo souvan repete.
Se konsa, li jeneralman difisil yo li.
Nou jis gade TC-koki paj la moun yon ti kras anvan yo jwenn yo lòd, ki eval.
Men kèk bagay ale pi vit.
Yon apwòch se pou fè rechèch pou yon kòd.
Ou kapab sèvi ak bipè la.
Bipè gen koupe nan gade pou yon lòd oswa yon fil andedan yon operasyon bipè.
Man pa default pral sèvi ak bipè, swa gen plis oswa mwens.
Mwen pa konnen si w ap abitye ak sa yo, men sa yo kapab montre dosye ti jan pa ti jan.
Mwen te lè l sèvi avèk MWENS montre sa yo dosye patikilye nou te gen isit la.
Ou kapab fè rechèch andedan la.
Ou ka eseye lè l sèvi avèk strings rechèch diferan.
Epitou paj nonm nan sistèm opere diferan gen dwa pa menm bagay la.
Yo ka paj separe pou kch ak tchch.
Yo ap pa sou Mac a, men yo ta ka si sa yo se kòmandman apa a.
Si è pa reyèlman rele bach, gen pwobableman ta dwe yon paj moun apa a.
Gen kèk sistèm gen apa paj nonm jis pou C-koki bati-an kòmandman yo.
Pafwa si ou vle li yon deskripsyon sou yon lòd bati-an
sa a, se tou nan chemen an, tankou eko, ou bezwen li tout paj la moun sou ki lòd sou eko
detèmine li montre kouman li ap travay kòm yon lòd bati-an
menm si ou pa ap rele yo lòd, ki bati-an.
Sa se yon dezavantaj nan sistèm nan fonksyone an jeneral, pa sèlman pou kokiy yo,
byenke pou kokiy yo an patikilye paj sa yo moun yo se byen lontan,
an pati paske yo te ajoute karakteristik itil nan yo, ki pouvwa gen yon pozitif.
Oke. Èske gen nenpòt kesyon? Nenpòt ki sijè ou vle yo pote moute?
Nenpòt bagay ki enpòtan isit la?
Oke, li la te trè bèl ap pale ak nou tout.
Mwen espere ou te resevwa yon bagay soti nan seminè sa a
ki pral itil pou ou nan inisyativ avni-ou.
[CS50.TV]