Uyemukelwa kolunye uLwesihlanu ...
Sekuyisikhathi sokwazi ingxenye encane yesiginali. Ngemuva kokucabanga okuningi nginqume ukudala okuthunyelwe mayelana ne- imifudlana ejwayelekile; Yize kuzoba phezulu, ngicabanga ukuthi yinto okufanele wonke umuntu ayazi.
Ukusakaza Okujwayelekile
Ukusakaza Okujwayelekile Yenziwe ngamashaneli wokuxhumana amaningana phakathi komsebenzisi ne-terminal. Lezi “ziteshi” zokufaka / zokukhipha zibonisa noma zithwebula imininingwane lapho kwenziwa umyalo.
Ukuxhumeka oku-3 kwe-I / O yile: stdin Okokufaka okujwayelekile, stdout Okukhiphayo okujwayelekile, stderr Iphutha elijwayelekile.
i-stdin: Okokufaka okujwayelekile
Okokufaka okujwayelekile kuyindlela lapho sifaka khona imininingwane kusuka kumyalo, kungaba ngamapayipi, ukuqondisa kabusha, ikhibhodi, njll. Sikhomba ngencazelo yefayela 0.
Isibonelo se-stdin kungaba:
hlunga <uhlu
Kuthatha lonke ulwazi olusohlwini -kulesi simo izinombolo ezibhalwe ngokungahleliwe-, futhi lapho uqondisa kabusha ifayela kumyalo we-ls, lihlela uhlu lwezinombolo ngokulandelana kwama-alfabhethi. Kulesi sibonelo amafulegi abekiwe.
stdout: Ukukhishwa okujwayelekile
Ukukhishwa okujwayelekile, njengoba kusho igama laso, kukhombisa ukukhishwa komyalo nge-console. Uma sibhala ls lonke ulwazi olusikhombisa esikrinini kungukukhishwa okujwayelekile. Imelwe ngumchazi 1.
Manje ngizozama ukufaka i-stdin ne-stdout ngombhalo obhalwe ku-bash, ngoba ngithanda i-bash hahaha. 🙂
test.sh
#! / bin / bash uma [-t 0]; bese u-echo "Usebenzisa i-stdout" elif [-t 1]; bese uthi "Usebenzisa i-stdin" enye i-echo "Iphutha lobugebengu" fi
Manje isithombe-skrini esibonisa ukuthi ungasisebenzisa kanjani iskripthi. Lapho uqondisa kabusha noma usebenzisa ipayipi nokusetshenziswa kweskripthi isivivinyo -t ukwazi ukuthi kwenziwa yini kuphela umbhalo we-stdout, futhi uma kungenjalo kusobala ukuthi yi-stdin.
bash test.sh ls | bash test.sh bash test.sh </ etc / passwd
Khumbula ukuguqula umyalo nokuzilolonga ukuze ufunde.
stderr: Iphutha elijwayelekile
Iphutha elijwayelekile yindlela izinhlelo ezibonisa ngayo amaphutha noma ukuxilongwa. Imelwe ngumchazi 2.
Ukuqonda umqondo, lesi yisimo: lapho sifuna ukugcina iphutha lomyalo, into yokuqala esicabanga ngayo ukuqondisa kabusha okukhiphayo kumbhalo osobala.
ls> info.txt
Lokhu kuzosebenza, imininingwane yomyalo izogcinwa kufayela lombhalo osobala. Kepha lapho kugcinwa iphutha, aligcini, kepha liyakhombisa esikrinini nefayela lombhalo ongenalutho alinalutho.
Esikhundleni salokho uma sisebenzisa u-2> ukukhombisa ukusindisa i-stderr kufayela:
ls foo 2> info.txt
Manje izogcina imininingwane yephutha kufayela lombhalo.
Iningi le shell vumela i-stderr ne-stdout ukuthi igcinwe kumyalo owodwa womyalo nge &> lapho i-Foo eyisiqondisi esingekho
ls Ukulanda i-Foo &> info.txt
Leli fayela lizoqukatha imininingwane yephutha lapho kwenziwa i-ls ku-Foo futhi lizofaka kuhlu imikhombandlela engaphansi kokulandiwe.
Futhi ekugcineni, yini lokho okudumile 2> & 1?
Elula, eqondisa kabusha i-stderr ku-stdout. Lokho & phakathi> no-1 kusho ukuthi kuzoqondisa kabusha ku-stdout. Ukube ibingekho, bekungaba into efana ne ... "ukuqondisa kabusha iphutha ukufaka i-1".
Futhi ngalokhu kungenzeka ukuqondisa kabusha:
- stdout kufayela
- stderr kufayela
- stdout ku-stderr
- stderr ukuze stdout
- stderr kanye stdout kufayela
- phakathi kwabanye
Yilokho okwanamuhla abantu. Siyafunda futhi siyabonga ngokusinda kwakho. 😀
Kuyathakazelisa. Ngenxa yezifundo zakho, ngithanda uBash kakhulu.
Othandekayo, onentshisekelo, kepha unephutha kulayini olandelayo:
"Futhi lapho uqondisa kabusha ifayela kumyalo we-ls", kufanele kube "futhi lapho uqondisa kabusha ifayela kumyalo wokuhlunga".
A ukubingelela.
Kukhona iphutha ekuqaleni kombhalo, lapho ukhombisa umyalo "ls", kufanele kube "ukuhlunga":
"Kuthatha lonke ulwazi olusohlwini - kulokhu izinombolo ezibhalwe ngokungahleliwe-, futhi lapho kuqondiswa kabusha ifayela kumyalo we-ls (lapha kuzohlelwa)
Ukubingelela nokubonga ngokwabelana ngomsebenzi wakho
Lokhu kuhle nge-cron, lapho ufuna ukuthi okukhiphayo kukhishwe (/ dev / null) kepha amaphutha agcinwe kumafayela. Futhi, lapho ngenza lokhu, ngivame ukusebenzisa umyalo wosuku ukucacisa kahle ukuthi bahlulekile nini.
UBash (sh) unalawa mathuluzi akhuliswe ifilosofi ye-Unix "enza into eyodwa, futhi akwenze kahle"
Angikatholi lutho
Haha kahle kuchazwe kahle, yini ongayiqondanga?