Kugamuchirwa kune imwe Chishanu ...
Yasvika nguva yekuziva chikamu chidiki cheiyo terminal. Mushure mekufunga kwakawanda ndakafunga kugadzira chinyorwa nezve iyo standard hova; Kunyangwe chichava chepamusoro, ndinofunga chiri chinhu chinofanirwa kuziva nemunhu wese.
Yakazara Stream
Yakazara Stream Inoumbwa nematanho ekutaurirana akati wandei pakati pemushandisi uye terminal. Aya maInput / Output "chiteshi" anoratidza kana kutora ruzivo kana kuraira kwaitwa.
Iwo matatu I / O ekubatanidza ndeaya: stdin Standard yekuisa, stdout Standard kuburitsa, stderr Kukanganisa kwakawanda.
stdin: Yakajairwa yekuisa
Yakajairwa yekuisa ndiyo nzira yatinobata nayo ruzivo kubva kumurairo, kungave kuburikidza nemapombi, redirection, keyboard, nezvimwe. Isu tinozvizivisa neiyo dudziro yefaira 0.
Muenzaniso we stdin ungave:
sarudza <kunyora
Zvinotora ruzivo rwese rwuri mune irwo runyorwa - mune iyi nyaya manhamba akanyorwa zvisina mutsindo - uye kana uchidzoreredza iyo faira kune iyo ls yekuraira, inoronga iyo nhamba yehuwandu nerunyoro. Mumuenzaniso uyu mireza iri pachena.
stdout: Yakaburitswa
Standard kuburitsa, sezita zvarinoreva, inoratidza kuburitsa kwemirairo kuburikidza neconsole. Kana isu tikanyora ls, ruzivo rwese rwunotiratidza pachiratidziro ndicho chakabuditswa. Inomiririrwa nedudziro 1.
Zvino ini ndichaedza kusimbisa stdin uye stdout nechinyorwa chakanyorwa mu bash, nekuda kwekuti ini ndinoda bash hahaha. 🙂
test.sh
#! / bin / bash kana [-t 0]; wobva wadzokorora "Uri kushandisa stdout" elif [-t 1]; wobva wati "Uri kushandisa stdin" imwezve echo "Brutal error" fi
Iye zvino skrini inoratidza maitiro ekushandisa script. Paunenge uchidzosera kana kushandisa pombi ine script yekushandisa bvunzo -t kuziva kana chete stdout script inoitwa, uye kana zvisiri zviri pachena stdin.
bash bvunzo.sh ls | bash test.sh bash bvunzo.sh </ etc / passwd
Rangarira kugadzirisa rairo uye kudzidzira kuitira kuti iwe udzidze.
stderr: Kanganiso yakajairwa
Standard Kukanganisa ndiyo nzira iyo zvirongwa zvinoratidza zvikanganiso kana diagnostics. Inomiririrwa nedudziro 2.
Kuti unzwisise pfungwa iyi, iyi ndiyo mamiriro: kana isu tichida kusevha yekukanganisa kuraira, chinhu chekutanga chatinofunga nezvacho chiri kuendesa kuburitsa kune yakajeka zvinyorwa.
ls> info.txt
Izvi zvaizoshanda, iro rairo reruzivo rinochengetwa mune yakajeka mameseji faira. Asi kana uchichengeta iko kukanganisa, hakuichengete, asi inozviratidza pachiratidziro uye faira remavara faira harina chinhu.
Panzvimbo iyoyo kana isu tikashandisa 2> kuratidza kuchengetedza stderr mufaira:
ls foo 2> info.txt
Iye zvino icha chengetedza iyo yekukanganisa ruzivo mune zvinyorwa zvinyorwa.
Zvizhinji zve Shell bvumira stderr uye stdout kuchengetwa mune imwechete yekuraira kuraira ne &> uko Foo iri dhairekitori risipo
ls Kurodha pasi Foo &> info.txt
Iyi faira ichave iine ruzivo rwekukanganisa paunenge uchiita ls muFoo uye unonyora madhairekitori ari pasi peDownload.
Uye pakupedzisira, chii chinozivikanwa icho 2> & 1?
Zvakareruka, redirect stderr kune stdout. Izvo & pakati pe> uye 1 zvinoreva kuti ichaendesa kune stdout. Dai yanga isipo, chingave chinhu chakadai ... "redirect the error to file 1".
Uye neizvi zvinokwanisika kuendesa zvakare:
- stdout kune faira
- stderr kune faira
- stdout ku stderr
- stderr ku stdout
- stderr uye stdout kune faira
- pakati pevamwe
Ndikwo kwanhasi vanhu. Tinoverenga nekutenda nekumira kwawakaita. 😀
Inonakidza. Kutenda kune vako vadzidzisi, ndiri kufarira Bhash zvakanyanya.
Anodiwa, anonakidza, zvisinei iwe une kukanganisa mune inotevera mutsara:
"Uye kana uchirongedzesa iyo faira kune iyo ls raira", inofanirwa kunge iri "uye kana uchitungamidza iyo faira kune yakasarudzika kuraira".
Thanks.
Pane kukanganisa pakutanga kwechinyorwa, paunoratidza rairo «ls», inofanira kunge iri «ronga»:
"Zvinotora ruzivo rwese rwuri mune irwo runyorwa - mune iyi nyaya manhamba akanyorwa zvisina kurongwa-, uye kana uchidzoreredza iyo faira kune iyo ls raira (apa zvingave zvakarongeka)"
Kwazisai uye nekutenda nekugovana rako basa
Izvi zvakanaka kune cron, uko iwe kwaunoda kuti kuburitswa kuve kwakatsetseka (/ dev / null) asi zvikanganiso zvichengetwe mumafaira. Zvakare, pandinoita izvi, ini ndinowanzo shandisa iro rairo kuraira kutsanangura chaizvo pavakatadza.
Bash (sh) ine zvishandiso izvi zvakagadzirwa neiyo Unix uzivi "ita chinhu chimwe, uzviite nemazvo"
Zvakanaka ini handina chandakawana
Haha zvakanaka zvinotsanangurwa chaizvo, chii chausina kunzwisisa?