cs.phhsnews.com


cs.phhsnews.com / Jak spustit příkaz na pozadí s žádným výstupem, pokud se neobjeví chyba?

Jak spustit příkaz na pozadí s žádným výstupem, pokud se neobjeví chyba?


Pokud jste zaneprázdněn, pak poslední věc, kterou potřebujete, je obtěžovat obrovský Množství "zbytečných" oznámení, tak jak se vám zklidní věci? Dnešní příspěvek SuperUser Q & A obsahuje několik skvělých odpovědí, které pomohou čtenáři ztišit množství výstupů.

Dnešní zasílání dotazů a odpovědí nám přichází s laskavým svolením SuperUser - podřízenou skupinou Stack Exchange.

Čtečka dotazu

SuperUser Xster chce vědět, jak spustit příkaz na pozadí bez výstupu, pokud neexistuje chyba:

Jak potlačit výstup příkazu, ale ukázat, chyba?

Jak dostanete příkaz k běhu na pozadí bez výstupu, pokud se neobjeví chyba?

Odpovědí

přispěvatelé SuperUser Bob a Maximillian Laumeister mají pro nás odpověď. První, Bob:

Bohužel, předpoklad, že stderr je používán pouze pro chybový výstup, není vždy správný. Naopak stderr je často používán pro všechny interaktivní výstupy a diagnostiku (tj. Výstup určený uživateli k čtení v interaktivním výzvě) (1) wget

) potlačuje výstup bez chyby. Přečtěte si jejich stránky man, abyste zjistili, zda existuje. Další konvence, která drží častěji je kód exit , program vrátí při ukončení výstupní kód. Obvykle

(2) , výstupní kód 0 označuje úspěch a každý jiný kód ukončí s bash . výstupní kód posledního příkazu z proměnné $? . U ryb použijte proměnnou $ status . Můžete načíst

stderr

do dočasného souboru a vytisknout jej pouze v případě, že dojde k chybě. Například (

ryby ): Můžete také použít některé klávesové zkratky, pokud nejste řetězové příkazy: nebo: buffer

2> & 1> / tmp / outputbuffer . Poznámka: co můžu najít ve své dokumentaci.Tato syntaxe může být mírně špatná.Můžete také použít mktemp k vygenerování jedinečného dočasného souboru.Navštívte jej a zapište název souboru do proměnné.)

Pokud musíte spustit celou věc na pozadí shellu, který také používáte interaktivně ve stejnou dobu, pak byste měli lépe psát skript pro zpracování výstupu - skrývání a běh tohoto skriptu na pozadí se standardními technikami ( ryby ). Hex, můžete něco jako následující funkci v ~ / .config / fish / config.fish :

Volat s run-silent somecommand & (kde koncový & způsobí, že se bude spouštět na pozadí)

Všimněte si, že toto bude přehrát původní kód ukončení a v případě výskytu chyby stdout a stderr selhání.

(1) Neexistuje žádná záruka, že se chyba výstupu neobjeví na stdout , některé programy vypisují všechny výstupy

Bohužel, stále tomu tak není. Výstupní kód je zcela řízen programem a některé ukazují některé podmínky úspěšnosti s nenulovými výstupy. Znovu zkontrolujte příručku

Následuje odpověď od Maximilliana Laumeistera:

Unixové nástroje posílají obecné zprávy na stdout a chybové zprávy na stderr chtít vidět chybové zprávy, pak bude stačit potlačit stdout tak, žedostane výstup do konzoly

Způsob, jak to udělat (v obou bash a ryby ) má přidat příkaz > / dev / null . Toto potrubí stdout do nulového bodu, ale stderr (s chybovými zprávami) stále přichází do konzoly.

Například:

Příkaz echo 1 > / dev / null nevytiskne nic, protože normální Stdout výstup je potlačen a nic nebylo zapsáno na stderr .

Příkaz man doesnotexist> / dev / null zapíše své chybové hlášení na stderr . Musíte něco přidat k vysvětlení? Zní to v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.



Proč šetřiče obrazovky již nejsou potřebné

Proč šetřiče obrazovky již nejsou potřebné

ŠEtřiče obrazovky jsou řešením z předchozí technologie. I přes své jméno šetřiče obrazovky už "nešetří" nic - vše, co dělají, je plýtvání elektřinou. Šetřiče obrazovky nejsou potřeba na moderních plochých LCD displejích. Když počítač automaticky vypne displej, je to nový "spořič obrazovky" - šetří energii, snižuje náklady na elektřinu a prodlužuje životnost baterie.

(how-to)

Postup při instalaci vzdálené plochy v systému Windows XP

Postup při instalaci vzdálené plochy v systému Windows XP

Pokud jste nikdy nepoužívali službu Vzdálená plocha, je to opravdu skvělý způsob, jak se vzdáleně připojit k jinému počítači (kanceláři, domě atd.) A dostat práci, kterou jste jinak nemohli udělat, pokud jste nebyli fyzicky u počítače. Rutinně používám vzdálený počítač k připojení k serverům v naší kanceláři, připojit se k uživatelským počítačům, poskytnout technickou podporu a připojit se k domácímu počítači k přístupu k souborům.Chcete-li použít aplikaci Vzdálená plocha, musíte se d

(How-to)