BASH-programmering

Hvordan omdirigere stderr til stdout i Bash

Hvordan omdirigere stderr til stdout i Bash
Kommandoer i Linux tar noe input fra brukeren, som kan være en fil eller et hvilket som helst attributt, og når de kjøres, gir de noe output som kalles standard output. Standardutgangen kan være en suksessutgang eller en feilutgang; begge vil vises på terminalskjermen. Men i noen tilfeller vil du lagre standardutganger i en fil for testing eller feilsøking av koden. I Linux kan disse utgangene omdirigeres til en fil, og prosessen med å fange den kalles omdirigering.

Hver prosess i Linux produserer tre datastrømmer, "stdin", "stdout" og "stderr":

Hver datastrøm har en numerisk id:

Numerisk ID Navn
0 stdin
1 stdout
2 stderr

La oss forklare omdirigering litt mer med detaljer:

Slik omdirigerer du standardutdata og standardfeil i Bash:

For å omdirigere standardutgangen til kommandoen, bruker vi “1” med en viderekoblingsoperator som er større enn “>” -tegnet:

$ ls 1> stdout.tekst

Ovennevnte kommando vil opprette en fil og plassere standardutdata for “ls” -kommandoen i “stdout.txt ”-fil.

Å lese “stdout.txt ”-fil, bruk:

$ cat stdout.tekst

Vi kan også omdirigere standardfeil til en fil ved å bruke kommandoen:

$ cat myfile.tekst 2> stderr.tekst

For å se “stderr.txt ”-fil, bruk:

$ katt stderr.tekst

Forsikre deg om at bruk “2” vil være større enn “>” -tegnet. Siden det ikke er noe “myfile.txt ”-fil i katalogen, vil“ cat ”-kommandoen gi en feil som vil bli lagt til i“ stderr.txt ”-fil.

Disse standardutgangene kan også omdirigeres med en enkelt kommando, bruk:

$ ls 1> stdout.tekst 2> stderr.tekst

Resultatet av kommandoen “ls” vil skrives i “stdout.tekst”-Filen, men“stderr.tekst”Forblir tom fordi det ikke ville være noen feil.

La oss nå gjøre for “stderr.tekst":

$ cat myfile.tekst 1> stdout.tekst 2> stderr.tekst

Bruk kommandoen nedenfor for å lese “stderr.tekst.”

$ katt stderr.tekst

Og selvfølgelig, "stdout.txt ”vil være tomt.

Konklusjon:

Linux-kommando ved utførelse gir standardutgang som kan være en suksessutgang eller en feilutgang. Generelt kan ikke disse utgangene omdirigeres ved hjelp av viderekoblingsoperatorer. vi må bruke spesifikke numeriske ID-er med ">" -tegnet. I denne guiden lærte vi hvordan du bruker disse numeriske tastene for å omdirigere standardutdata til en fil med eksempler.

Hvordan bruke AutoKey til å automatisere Linux-spill
AutoKey er et desktopautomatiseringsverktøy for Linux og X11, programmert i Python 3, GTK og Qt. Ved å bruke skript og MACRO-funksjonalitet kan du aut...
Hvordan vise FPS-teller i Linux-spill
Linux-spill fikk et stort press da Valve kunngjorde Linux-støtte for Steam-klient og spillene deres i 2012. Siden den gang har mange AAA- og indiespil...
Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...