Ku soo dhowow jimco kale ...
Waa waqtigii lagu baran lahaa qayb yar oo ka mid ah terminaalka. Fikir badan ka dib waxaan go aansaday inaan abuuro qoraal ku saabsan durdurrada caadiga ah; In kasta oo ay dusha ka sarreyso, haddana waxaan u maleynayaa inay tahay wax ay tahay inuu qof walba ogaado.
Heerka caadiga ah
Heerka caadiga ah Waxay ka kooban tahay dhowr wadiiqo oo isgaarsiineed oo u dhexeeya isticmaalaha iyo boosteejada. Kuwani "Kanaallada" Wax-soo-saarka / Soo-saaridda waxay muujiyaan ama qabtaan macluumaadka markii amar la fulinayo.
Isku xidhka 3 I / O waa: stdin Talo gelinta caadiga ah, dhejis Soosaarka caadiga ah, stderr Khaladka caadiga ah.
stdin: Talooyin caadi ah
Gelinta caadiga ah waa habka aan macluumaadka uga soo qaadanno amar, ama tubbooyin, dib u habeyn, kumbuyuutar, iwm. Waxaan ku aqoonsaneynaa muuqaalka faylka 0.
Tusaalaha stdin wuxuu noqon karaa:
kala saar <liis garayn
Waxay qaadataa dhammaan macluumaadka ku jira liiska - xaaladdan lambarrada loo qoro si aan kala sooc lahayn - iyo marka faylka loo wareejinayo amarka ls, waxay u kala saartaa liiska lambarrada alifbeetada. Tusaalahan calamaduhu waa maldahan yihiin.
stdout: Soosaarka caadiga ah
Soosaarka caadiga ah, sida magaceedu tilmaamayo, wuxuu soo bandhigayaa soo saarida amarka adoo adeegsanaya qunsulka. Haddii aan qorno ls dhammaan macluumaadka ay na tusayso shaashadda ayaa ah wax soo saarka caadiga ah. Waxaa matalaya sharaxe 1.
Hadda waxaan isku dayi doonaa inaan dhaqaajiyo stdin iyo stdout oo leh qoraal ku qoran bash, si fudud maxaa yeelay waan jeclahay bash hahaha. 🙂
imtixaan.sh
#! / bin / bash haddii [-t 0]; ka dib dhawaaqa "Waxaad isticmaaleysaa istaroog" elif [-t 1]; ka dib ku celi "Waxaad isticmaaleysaa stdin" kale echo "Khalad nacasnimo" fi
Hadda shaashad shaashad ah oo muujinaysa sida loo isticmaalo qoraalka. Marka la wareejinayo ama la isticmaalayo tuubbo la adeegsanayo qoraalka tijaabi -t in la ogaado haddii kaliya qoraalka stdout la fuliyo, haddii kalese waa iska cadahay.
imtixaan bash.sh ls | bash test.sh bash test.sh </ etc / passwd
Xusuusnow inaad wax ka beddesho amarka iyo ku celcelinta si aad wax u barato.
stderr: Cilad caadi ah
Khalad Caadi ah waa habka barnaamijyadu u soo bandhigaan khaladaadka ama ogaanshaha cudurka. Waxaa matalaya sharaxe 2.
Si loo fahmo fikradda, tani waa xaaladda: marka aan dooneyno inaan badbaadinno qaladka amarka, waxa ugu horreeya ee aan ka fekereyno waa inaan u weecino wax soo saarka qoraalka cad.
ls> info.txt
Tani way shaqeyn laheyd, macluumaadka amarka waxaa lagu keydinayaa feylal qoraal ah oo toos ah. Laakiin marka la keydinaayo qaladka, ma keydineyso, laakiin waxay ku muujineysaa shaashadda oo faylka qoraalka cad ayaa madhan.
Taabadalkeed haddii aan isticmaalno 2> si aan u muujinno si aan u kaydiyo stderr faylka:
ls foo 2> info.txt
Hadda waxay kaydin doontaa macluumaadka qaladka ee faylka qoraalka ku jira.
Inta badan Shell u oggolow stderr iyo stdout in lagu kaydiyo hal amar oo amar ah oo leh &> halka Foo ay tahay tusaha aan jirin
ls Soo Degsashada Foo &> info.txt
Faylkani wuxuu ka koobnaan doonaa macluumaadka qaladka markii la fulinayo ls Foo wuxuuna qori doonaa tilmaamaha hoosta Soo-dejinta.
Ugu dambeyntiina, muxuu caan ku yahay taasi 2> & 1?
Fudud, dib uxirid stderr ilaa stdout. Taasi & badhtanka> iyo 1 macnaheedu waa waxay u weecin doontaa ciribtirka. Haddii aysan halkaas joogin, waxay noqon laheyd wax sida ... "khaladka u weeciya faylka 1".
Tanna waa suurtogal in dib loo wareejiyo:
- istaandarka faylka
- stderr fayl
- stdout ilaa stderr
- stderr inuu istaago
- stderr iyo stdout in file ah
- kuwa kale
Taasi waa tan maanta dadka. Waan aqrinay waadna ku mahadsantahay joojinta. 😀
Xiiso leh Waad ku mahadsan tahay casharradaada, Waxaan jeclahay Bash waxbadan.
Gacaliye, xiiso leh, si kastaba ha noqotee waxaad khalad ku leedahay khadka soo socda:
"Iyo marka faylka loo wareejinayo amarka ls", waa inuu noqdaa "iyo goorta faylka loo wareejinayo amarka nooc".
Thanks.
Waxaa jira cilad bilowga qoraalka, markaad tilmaamayso amarka "ls", waa inuu noqdaa "nooc":
«Waxay qaadataa dhammaan macluumaadka ku jira liiska - kiiskan tirooyinka loo qoro si aan kala sooc lahayn -, iyo marka faylka loo wareejinayo amarka ls (halkan waa nooc)
Salaan iyo mahadsanid wadaagida shaqadaada
Tani waxay ku fiican tahay cron, halkaas oo aad rabto in wax soo saarku la shubo (/ dev / null) laakiin khaladaadka lagu kaydiyo faylasha. Sidoo kale, markaan sidan sameeyo, waxaan badanaa isticmaalaa amarka taariikhda si aan u caddeeyo goorta ay ku fashilmeen.
Bash (sh) wuxuu leeyahay aaladahaas oo ay soo saareen falsafada Unix "wax keliya samee, oo si wanaagsan u samee"
Hagaag, waxba kamaan helin
Haha si fiican ayaa loo sharaxay sifiican, maxaad fahmi weyday?