no.phhsnews.com


no.phhsnews.com / Hvordan kjører du en kommando i bakgrunnen uten utgang med mindre det er en feil?

Hvordan kjører du en kommando i bakgrunnen uten utgang med mindre det er en feil?


Hvis du er en travel person, så er det siste du trenger å bli plaget med en stor antall "ubrukelige" varsler, så hvordan stopper du tingene ned? Dagens SuperUser Q & A-post har noen gode svar for å hjelpe en leser til å stille ned mengden av utdata.

Dagens spørsmål og svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppe av Q & A-nettsteder.

Spørsmålet

SuperUser-leseren Xster vil vite hvordan man kjører en kommando i bakgrunnen uten utdata med mindre det er en feil:

Hvordan undertrykker du en kommandos utgang, men viser den om kommandoen er utgangskoder en feil?

Hvordan får du en kommando til å kjøre i bakgrunnen uten utdata med mindre det er en feil?

Svaret

SuperUser-bidragsytere Bob og Maximillian Laumeister har svaret for oss. Først opp, Bob:

Dessverre er antagelsen om at stderr bare brukes til feilutgang, ikke alltid korrekt. I stedet er stderr ofte brukt for alle interaktive utdata og diagnostikk (dvs. utgang som er beregnet for brukeren å lese i en interaktiv spørring). (1) wget og dd er kjente eksempler.

Noen kommandoer vil gi et flagg (dvs. -quiet eller -silent ) for å undertrykke ikke-feilutgang. Les deres mantsider for å se om en eksisterer.

En annen konvensjon som holder oftere er utgangskode , et program returnerer en utgangskode når den utgår. Vanligvis (2) indikerer en utgangskode på 0 suksess, og noen annen utgangskode indikerer en feil.

Med bash kan du få avslutningskode for den siste kommandoen fra variabelen $? . I fisk , bruk $ status variabelen. Du kan røre stderr til en midlertidig fil og bare skrive ut den hvis det oppstår en feil. For eksempel ( fisk ):

Du kan også bruke noen snarveier hvis du ikke kjeder kommandoer:

Eller:

Du kan også røre stdout til det samme buffer ved bruk av 2> & 1> / tmp / outputbuffer .

( Merk: Jeg vet egentlig ikke fisk , så jeg tilpasser konseptet til Du kan også bruke mktemp for å generere en unik midlertidig fil. Kjør den og ta opp filnavnet i en variabel.)

Hvis du må kjøre alt i bakgrunnen av et skall som du også bruker interaktivt på samme tid, da er det bedre å skrive et skript for å håndtere utdataene som skjuler og kjører det skriptet i bakgrunnen med standardteknikker ( fisk ). Heck, du kan sette noe som følgende funksjon i ~ / .config / fish / config.fish :

Ring med run-silent somecommand & (der den etterfølgende & får det til å kjøre i bakgrunnen)

Merk at dette vil svelge den opprinnelige utgangskoden, og vil dumpe både stdout og stderr i tilfelle en svikt. Du kan tilpasse det etter behov.

(1) Det er ingen garanti for at feilutgangen ikke vises på stdout , noen programmer vil dumpe alle utdataene der!

(2) Dessverre er dette fortsatt ikke alltid tilfelle. Utgangskoden er helt kontrollert av programmet, og noen vil indikere noen suksessforhold med nullutganger. Igjen, sjekk håndboken.

Etterfulgt av svaret fra Maximillian Laumeister:

Unix-verktøy sender generelle meldinger til stdout og feilmeldinger til stderr , så hvis vi bare Vil du se feilmeldinger, vil det være tilstrekkelig å undertrykke stdout slik at bare stderr får utgang til konsollen.

Måten å gjøre dette på (i begge bash og fisk ) er å legge til > / dev / null til kommandoen. Disse rørene stdout til ingenting, men stderr (med feilmeldingene dine) kommer frem til konsollen.

Så for eksempel:

Kommandoen ekko 1 > / dev / null skriver ingenting, fordi det normale Stdout -utgangen er undertrykt, og ingenting ble skrevet til stderr .

Kommandoen mannen doesnotexist> / dev / null skriver en feilmelding fordi mann skriver feilmeldingen sin til stderr .


Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Se hele diskusjonstråden her.


Hvordan stopper du Google Personvern påminnelsesmelding fra stadig å se?

Hvordan stopper du Google Personvern påminnelsesmelding fra stadig å se?

Å Bli varslet om endringer eller oppdateringer av personverninnstillinger til tider er en ting, men når du gjentatte ganger blir bombardert med samme nøyaktige melding dag etter dag uansett hva du gjør, da har noe å gi. Dagens SuperUser Q & A-innlegg har noen nyttige forslag til å hjelpe en veldig frustrert leser å bli kvitt en irriterende påminnelsesmelding.

(how-to)

Slik lager du Windows 10-filutforsker ut som Windows 7s Windows Utforsker

Slik lager du Windows 10-filutforsker ut som Windows 7s Windows Utforsker

Det er mange endringer i Windows 10s filutforsker sammenlignet med Windows 7 Explorer. Hvis du har oppgradert til Windows 10, og du ikke liker endringene, viser vi deg hvordan du får utseendet til Windows 7 Explorer. Vi skal bruke et gratis verktøy som heter OldNewExplorer å utføre noen av endringene, sammen med å endre noen innebygde Windows-innstillinger og justere registret.

(how-to)