BASH-programmering

Hoe stderr om te leiden naar stdout in Bash

Hoe stderr om te leiden naar stdout in Bash
Commando's in Linux vergen enige invoer van de gebruiker, wat een bestand of een attribuut kan zijn, en bij uitvoering geven ze een uitvoer die standaarduitvoer wordt genoemd. De standaarduitvoer kan een geslaagde uitvoer of een foutuitvoer zijn; beide worden weergegeven op uw terminalscherm. Maar in sommige gevallen wilt u standaarduitvoer opslaan in een bestand om de code te testen of te debuggen. In Linux kunnen deze outputs worden omgeleid naar een bestand, en het proces om het vast te leggen heet omleiding.

Elk proces In Linux produceert drie datastromen, "stdin", "stdout" en "stderr":

Elke datastroom heeft een numerieke id:

Numerieke ID Naam
0 standaard
1 stout
2 stderr

Laten we de omleiding wat gedetailleerder uitleggen:

Hoe standaarduitvoer en standaardfout in Bash om te leiden:

Om de standaarduitvoer van de opdracht om te leiden, gebruiken we "1" met een omleidingsoperator die groter is dan het teken ">":

$ls 1> stdout.tekst

De bovenstaande opdracht maakt een bestand aan en plaatst de standaarduitvoer van de opdracht “ls” in de “stdout.txt" bestand.

Om de "stdout" te lezen.txt” bestand, gebruik:

$cat stdout.tekst

We kunnen de standaardfout ook naar een bestand omleiden door de opdracht te gebruiken:

$cat mijnbestand.txt 2> stderr.tekst

Om de “stderr .” te bekijken.txt” bestand, gebruik:

$cat stderr.tekst

Zorg ervoor dat "2" groter is dan het teken ">"”. Aangezien er geen "mijnbestand" is.txt"-bestand in de map, geeft de opdracht "cat" een fout die wordt toegevoegd aan de "stderr.txt" bestand.

Deze standaarduitgangen kunnen ook worden omgeleid met een enkele opdracht, gebruik:

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

De uitvoer van de opdracht "ls" wordt geschreven in de "stout.tekst” bestand, maar de “stderr.tekst” blijft leeg omdat er geen fout zou zijn.

Laten we nu doen voor "stderr.tekst":

$cat mijnbestand.txt 1> stdout.txt 2> stderr.tekst

Gebruik de onderstaande opdracht om "stderr . te lezen.tekst.”

$cat stderr.tekst

En natuurlijk, "stdout".txt" zal leeg zijn.

Conclusie:

Linux-opdracht bij uitvoering geeft standaarduitvoer die een succesvolle uitvoer of een foutuitvoer kan zijn. Over het algemeen kunnen deze outputs niet worden omgeleid met behulp van omleidingsoperators; we moeten specifieke numerieke id's gebruiken met het teken ">". In deze handleiding hebben we geleerd hoe we deze numerieke toetsen kunnen gebruiken om standaarduitvoer om te leiden naar een bestand met voorbeelden.

Voeg muisbewegingen toe aan Windows 10 met deze gratis tools
In de afgelopen jaren zijn computers en besturingssystemen sterk geëvolueerd. Er was een tijd dat gebruikers opdrachten moesten gebruiken om door best...
Beheer en beheer muisbewegingen tussen meerdere monitoren in Windows 10
Muisbeheer voor twee schermen laat je muisbewegingen tussen meerdere monitoren controleren en configureren door de bewegingen nabij de grens te vertra...
Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...