Wamkelekile kolunye uLwesihlanu ...
Lixesha lokuba wazi icandelo elincinci lesiphelo. Emva kokucingisisa ndaye ndagqiba kwelokuba ndenze iposti malunga imilambo esemgangathweni; Nangona izakuba ngaphezulu, ndicinga ukuba yinto ekufuneka yaziwe ngumntu wonke.
Umjelo oMiselweyo
Umjelo oMiselweyo Yenziwe ngamajelo onxibelelwano aliqela phakathi komsebenzisi kunye nesiphelo. Ezi zingeniso / ukuphuma "kwamajelo" abonisa okanye afake ulwazi xa kusenziwa umthetho.
Unxibelelwano lwe-3 lwe-I / O zezi: stdin Igalelo eliqhelekileyo, Yima Imveliso esemgangathweni, kwiba Impazamo esemgangathweni.
stdin: Igalelo eliqhelekileyo
Igalelo elisezantsi yindlela esibamba ngayo ulwazi kumyalelo, nokuba kungenxa yemibhobho, ukuqondisa kwakhona, ikhibhodi, njl. Siyichonga ngesichazi sefayile 0.
Umzekelo we-stdin uya kuba:
uhlobo <uluhlu
Ithatha lonke ulwazi oluluhlu- kule meko amanani abhalwe ngokungacwangciswanga- kwaye xa uhambisa ifayile kumyalelo we-ls, iluhlela uluhlu lwamanani ngokwe-alfabhethi. Kulo mzekelo iiflegi azicaciswanga.
stdout: Iziphumo eziqhelekileyo
Imveliso esemgangathweni, njengoko igama layo lisitsho, ibonisa ukuphuma komyalelo ngekhonsoli. Ukuba sibhala ls lonke ulwazi olusibonisa kwiscreen sisiphumo esisezantsi. Imelwe yinkcazo 1.
Ngoku ndiza kuzama ukwenza i-stdin kunye ne-stdout ngesikripthi esibhalwe kwi-bash, kuba ndiyayithanda i-bash hahaha. 🙂
uvavanyo.sh
#! / bin / bash ukuba [-t 0]; emva koko echo "Usebenzisa i-stdout" elif [-t 1]; ke echo "Usebenzisa i-stdin" enye i-echo "Impazamo ye-Brutal" fi
Ngoku umfanekiso weskrini esibonisa indlela yokusebenzisa iskripthi. Xa uhambisa kwakhona okanye usebenzisa umbhobho kunye nokusetyenziswa kweskripthi vavanyo -t ukwazi ukuba kuphela iskripthi se-stdout esenziweyo, kwaye ukuba akunjalo kuyacaca ukuba yi-stdin.
Uvavanyo lwe-bash.sh ls | Uvavanyo lwe-bash.sh bash test.sh </ etc / passwd
Khumbula ukuguqula umyalelo kunye nokuziqhelanisa ukuze ufunde.
stderr: Impazamo esemgangathweni
Impazamo esemgangathweni yindlela iinkqubo ezibonisa ngayo iimpazamo okanye isifo. Imelwe yinkcazo 2.
Ukuqonda umxholo, nantsi imeko: xa sifuna ukugcina impazamo kumyalelo, into yokuqala esicinga ngayo kukuthumela iziphumo kwisicatshulwa esicacileyo.
ls> ulwazi.txt
Oku kuyakusebenza, ulwazi lomyalelo luya kugcinwa kwifayile yokubhaliweyo ecacileyo. Kodwa xa ugcina impazamo, ayigcini, kodwa iyayibonisa kwiscreen kwaye ifayile yokubhaliweyo engenanto ayinanto.
Endaweni yoko ukuba sisebenzisa u-2> ukubonisa ukugcina i-stderr kwifayile:
ls foo 2> info.txt
Ngoku iya kugcina ulwazi lwempazamo kwifayile yokubhaliweyo.
Uninzi lwe Shell vumela i-stderr kunye ne-stdout ukuba igcinwe kumyalelo omnye womyalelo nge &> apho iFoo sisikhokelo esingekhoyo
ls Ukhuphelo lweFoo &> info.txt
Le fayile izakuqulatha ulwazi malunga nempazamo xa kuqhutywa i-ls kwi-Foo kwaye iya kudweliswa kwimikhombandlela phantsi koKhuphelo.
Kwaye okokugqibela, yintoni eyaziwayo 2> & 1?
Elula, eqondisa kwakhona i-stderr kwi-stdout. Oko kunye phakathi> kunye no-1 kuthetha ukuba iya kuphinda ithumele kwi-stdout. Ukuba ibingekho, ibizakuba yinto efana nale ... "phinda uthumele impazamo kwifayile yokuqala".
Kwaye oku kunokwenzeka ukuba uqondise kwakhona:
- stdout kwifayile
- stderr kwifayile
- stdout ukuya kwi-stderr
- stderr ukuya kwi-stdout
- stderr kunye stdout kwifayile
- phakathi kwabanye
Yiyo eyanamhlanje abantu. Sifunda kwaye siyabulela ngokusidlula. 😀
Inomdla. Enkosi kwizifundo zakho, ndiyayithanda iBash ngakumbi.
Molo, unomdla, nangona kunjalo unempazamo kulo mgca ulandelayo:
Msgstr "Kwaye xa uhambisa kwakhona ifayile kumyalelo we-ls", kufanele ukuba ibe njalo kwaye xa uhambisa kwakhona ifayile leyo kuhlobo lomyalelo ".
A ubingelele.
Kukho impazamo ekuqaleni kokubhaliweyo, xa ubonakalisa umyalelo «ls», kufanele ukuba ibe ngu «uhlobo»:
"Ithatha lonke ulwazi oluluhlu - kule meko amanani abhalwe ngokungacwangciswanga-, kwaye xa uhambisa ifayile kumyalelo we-ls (nantsi iya kulungiswa)"
Imibuliso kunye nombulelo ngokwabelana ngomsebenzi wakho
Oku kulungele ikhron, apho ufuna ukuba imveliso igungxulwe (/ dev / null) kodwa iimpazamo zigcinwe kwiifayile. Kananjalo, xa ndisenza oku, ndihlala ndisebenzisa umhla wokuyalela ukucacisa ukuba basilele nini.
I-Bash (sh) inezi zixhobo ziphuhliswe yifilosofi ye-Unix "yenza into enye, kwaye uyenze kakuhle"
Ewe, andifumananga nto
Haha icacisiwe kakuhle, yintoni ongayiqondiyo?