lt.phhsnews.com


lt.phhsnews.com / Kaip paleisti komandą fone be rezultatų, jei nėra klaidos?

Kaip paleisti komandą fone be rezultatų, jei nėra klaidos?


Jei esate užsiėmęs žmogus, paskutinis dalykas, kurio jums reikia, yra būti varginantis su didžiuliu "nenaudingų" pranešimų kiekis, taigi, kaip jūs nusiraminate dalykus? Šiandienos "SuperUser" Q & A žinutė turi keletą puikių atsakymų, kad padėtų skaitytojui užblokuoti produkcijos kiekį.

Šiandienos klausimų ir atsakymų sesija ateina su meile iš "SuperUser" - "Stack Exchange", bendruomenės pagrįstos Q & A grupės interneto svetainių, padalijimo.

Klausimas

"SuperUser" skaitytuvas "Xster" nori žinoti, kaip paleisti komandą fone be išvesties, išskyrus atvejus, kai yra klaida:

Kaip slopinti komandų išvestį, bet parodyti, ar komandų išėjimo kodai klaida?

Kaip gaunate komandą paleisti fone be rezultatų, jei nėra klaidos?

Atsakymas

SuperUser autoriai Bobas ir Maximillian Laumeister atsakė už mus. Pirma, Bob:

Deja, prielaida, kad stderr naudojama tik klaidų išvedimui, ne visada yra teisinga. Greičiausiai stderr dažnai naudojamas bet kuriam ir visiems interaktyviam išėjimui ir diagnostikai (ty išėjimui, kurį vartotojas turi perskaityti interaktyvioje eilutėje). (1) wget ir dd yra gerai žinomi pavyzdžiai.

Kai kurioms komandoms bus numatyta vėliava (ty -svydis arba -silent ), kad būtų užkirstas kelias be klaidų. Perskaitykite jų meniu puslapius, kad sužinotumėte, ar jie egzistuoja.

Kitas dažniausiai pasitaikantis susitarimas yra išėjimo kodas , programa grąžina išėjimo kodą, kai jis baigiasi. Paprastai (2) išėjimo kodas 0 rodo sėkmę, o bet koks kitas išėjimo kodas nurodo klaidą.

Naudodami bash , galite gauti paskutinės komandos išėjimo iš $? kintamojo pabaigos kodą. Į fish naudokite kintamąjį $ status . Galite pagaminti stderr į laikiną failą ir jį atspausdinti, jei atsiranda klaida. Pavyzdžiui ( fish ):

Jūs taip pat galite naudoti kai kuriuos sparčiuosius klavišus, jei nesate grandinės komandas:

Arba:

Taip pat galite pakabinti stdout į tą pačią buferis naudojant 2> & 1> / tmp / outputbuffer .

( Pastaba: Aš iš tikrųjų nežinau fish , todėl aš pritaikau šią sąvoką ką aš galiu rasti savo dokumentuose.Sinteksė gali būti šiek tiek klaidinga.Taip pat galite naudoti mktemp , kad sukurtumėte unikalų laikiną failą. Vykdyti ir įrašyti failo pavadinimą kintamuju.)

Jei jums reikia paleisti visą dalyką lukšto fone, kurį tuo pačiu metu naudojate ir interaktyviai, tada jums geriau rašyti scenarijų, kuris sugeba paleisti išvesties ir paleisti tą scenarijų fone naudojant standartines technologijas ( žuvis ). Heck, galite įdiegti kažką panašaus į šią funkciją ~ / .config / fish / config.fish :

Skambinkite naudodami paleisti tylią somecommand ir (kur baigiasi & sukelia tai paleisti fone)

Atkreipkite dėmesį, kad tai sugrąžins pradinį išvesties kodą ir, jei bus išjungtas, išmesti tiek stdout , tiek stderr nesėkmė.

(1) Nėra jokios garantijos, kad klaidų išvedimas nebus rodomas stdout , kai kurios programos išsiskleidžia visą produkciją!

(2) Deja, tai dar ne visada. Išėjimo kodas yra visiškai kontroliuojamas programos, o kai kurie nurodo tam tikras sėkmės sąlygas su nuliniais išėjimais.

Vykdydami Maximillian Laumeister atsakymą:

"Unix" komunalinės paslaugos siunčia bendruosius pranešimus į stdout ir klaidų pranešimus į stderr , taigi, jei mes tik norėsite pamatyti klaidų pranešimus, tada užtenka užblokuoti stdout , kad į konsolę patektų tik stderr .

Tai padaryti (abiem atvejais bash ir fish ) yra pridėti > / dev / null komandai. Šie vamzdžiai stdout į nieką, bet stderr (su jūsų klaidos pranešimais) vis dar patenka į konsolę.

Pavyzdžiui:

komanda echo 1 > / dev / null nerašoma, nes normalusman doesnotexist> / dev / null atspausdina klaidos pranešimą, nes žmogus

rašo klaidos pranešimą stderr . Ar turite ką nors įtraukti į paaiškinimą? Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų? Patikrinkite visą diskusijų temą čia.


Kaip nustatyti pageidaujamo kontakto metodą

Kaip nustatyti pageidaujamo kontakto metodą "iOS 10" kontaktams "

Jei esate gerbėjas, kad organizuosite savo kontaktų sąrašą, pvz., Siųskite savo dublikatus arba grupuojate kontaktus į švaresnį sąrašą - jums bus malonu žinoti, kad "iOS 10" dabar leidžia pakeisti numatytąjį veiksmą tiems mėlyniam greito prisijungimo mygtukams kontaktiniame puslapyje. Pakeiskite "Blue Connect" mygtuko numatytąjį veiksmą kontaktiniame puslapyje Iš naujo ieškodami adresato puslapio pamatysite keturis mėlynus mygtukus, esančius kontaktiniame varde, kad greitai su jais susiekite žinute, telefonu, vaizdo įrašu arba el.

(how-to)

Kas yra

Kas yra "USB" derinimas ir ar saugu, kad jis būtų įjungtas "Android"?

Jei kada nors bandėte padaryti ką nors išplėstinį savo "Android" telefone, tikriausiai girdėjote (ar perskaitykite) terminas "USB atkūrimas". Tai dažniausiai naudojama parinktis, kuri pagal "Android" kūrėjų parinkčių meniu tvarkingai ištraukiama, bet vis tiek tai yra tai, ko daugelis vartotojų įjungia, nesvarbu, ką jis daro.

(how-to)