Práce se skripty shellu byla vždy zajímavá pro programátory a správce systému, protože výstup jim oběma pomáhá s laděním a monitorováním. Konfigurace většiny distribucí Linuxu je z velké části založena na souborech, takže je důležité porozumět konceptu zápisu dat do textového souboru pomocí skriptu nebo přesměrování výstupu na příkazovém řádku.
Linux při komunikaci s uživatelem a počítačem používá tři hlavní datové toky:
- stdin (STANDARD INput)
- stdout (STANDARNÍ VÝSTUP)
- stderr (STANDARD ERRor)
1. stdin
Jedná se o datový tok pro vstup informací. Jakýkoli vstup z libovolného zařízení, jako je klávesnice nebo myš, spadá do standardního vstupního datového toku. Stdin je reprezentováno 0 ID streamu.
[ Také by se vám mohlo líbit čtení: Pět způsobů použití operátorů přesměrování v bash ]
2. stdout
Toto je datový tok pro výstup dat. Výstup ze zařízení (jako je monitor, reproduktor atd.) spadá do standardního výstupního datového toku. stdout je zastoupena 1 ID streamu.
3. stderr
Standardní chyba se používá ke zpracování jakýchkoli chyb způsobených příkazy. Jakýkoli stream zařízení (jako monitor, reproduktor atd.), který uživatele varuje, že se něco pokazilo, spadá pod stderr. stderr je zastoupena 2 ID streamu.
Jak zapisujete data do souboru?
Pomocí operátorů přesměrování načtěte data ze streamů stdout a stderr a přesměrujte je do textového souboru.
Přesměrování :Přesměrování je funkce Linuxu používaná ke změně vstupních/výstupních zařízení při provádění příkazu.
Přesměrování výstupu/chyby
Chcete-li zapsat data do textového souboru ze skriptu Bash, použijte přesměrování výstupu/chyby s >
a >>
operátory přesměrování.
>
Přepíše data v textovém souboru.
>>
Připojí data k textovému souboru.
Vytvoření základního skriptu a pochopení přesměrování
date >> test1.txt
who >> test1.txt
date > test2.txt
who > test2.txt
Zde bude výstup obou příkazů připojen k test1.txt
zatímco test2.txt
bude obsahovat pouze výstup who
příkaz.
Další práce s přesměrováním
Výše uvedený skript přesměruje pouze výstup a v případě chyby selže. Chcete-li pracovat s přesměrováním pro výstup, chybu nebo obojí, musíte zadat další parametry.
Pro přesměrování výstupu:>
nebo >>
nebo 1>
nebo 1>>
Chyba přesměrování:2>
nebo 2>>
Pro přesměrování obou:&>
nebo &>>
Chyby přesměrování
date --who 2>> test1.txt
who 2>> test1.txt
Pro přesměrování pouze chyb jste zadali konkrétní parametr pro chybu. Výstupní soubor bude obsahovat pouze výstup prvního příkazu, protože má špatný argument.
Jiné argumenty lze zaměnitelně použít k dosažení různých funkcí.
Psaní skriptu pro další příkazy je stejné jako výše uvedený skript a vyžaduje operátory zobrazené výše.
[ Stáhnout nyní:Průvodce systémového administrátora skriptováním v Bash. ]
Sbalit
Přesměrování dat na stdout nebo stderr je velmi užitečné pro vývojáře i správce systému. Pochopení těchto nástrojů a jejich výsledků vám pomůže vytvářet nové soubory, odstraňovat problémy a shromažďovat systémové informace.