Jokainen Linux -prosessi tuottaa kolme datavirtaa, stdin, stdout ja stderr:
- stdin : Ottaa syötteen käyttäjältä näppäimistön kautta
- stdout : Näyttää lähdön näytöllä
- stderr : Näyttää virhetiedot näytöllä
Jokaisella tietovirralla on numeerinen tunnus:
Numeerinen tunnus | Nimi |
0 | stdin |
1 | stdout |
2 | stderr |
Selitämme uudelleenohjausta hieman yksityiskohtaisemmin:
Vakiotuloksen ja vakiovirheen uudelleenohjaus Bashissa:
Komennon vakiolähdön uudelleenohjaamiseen käytämme 1: tä, jonka uudelleenohjausoperaattori on suurempi kuin> -merkki:
$ls 1>stdout.txtYllä oleva komento luo tiedoston ja sijoittaa ls -komennon vakiotuloksen stdout.txt -tiedostoon.
Voit lukea stdout.txt -tiedoston seuraavasti:
$kissastdout.txt
Voimme myös ohjata standardivirheen tiedostoon käyttämällä komentoa:
$kissamyfile.txt2>stderr.txt
Voit tarkastella stderr.txt -tiedostoa seuraavasti:
$kissastderr.txt
Varmista, että käyttö 2 on suurempi kuin> -merkki. Koska hakemistossa ei ole tiedostoa myfile.txt, cat -komento antaa virheen, joka liitetään tiedostoon stderr.txt.
Nämä vakiolähdöt voidaan myös ohjata yhdellä komennolla, käytä:
$ls 1>stdout.txt2>stderr.txt
Ls -komennon tulos kirjoitetaan stdout.txt tiedosto, mutta stderr.txt jää tyhjäksi, koska virheitä ei olisi.
Tehdään nyt stderr.txt:
$kissamyfile.txt1>stdout.txt2>stderr.txt
Käytä alla mainittua komentoa stderr.txt-tiedoston lukemiseen.
$kissastderr.txt
Ja tietysti stdout.txt on tyhjä.
Johtopäätös :
Linux -komento suoritettaessa antaa vakiotuloksen, joka voi olla onnistunut tai virheilmoitus. Yleensä näitä lähtöjä ei voi ohjata uudelleenohjausoperaattoreilla; meidän on käytettävä tiettyjä numeerisia tunnuksia> -merkin kanssa. Tässä oppaassa opimme käyttämään näitä numeronäppäimiä normaalituloksen ohjaamiseen tiedostoon, jossa on esimerkkejä.