GNU/Linux >> Znalost Linux >  >> Linux

Bash skriptování:Jak zapisovat data do textových souborů

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:

  1. stdin (STANDARD INput)
  2. stdout (STANDARNÍ VÝSTUP)
  3. 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.


Linux
  1. Jak napsat text na obrázek pomocí příkazu Linux

  2. Jak porovnávat řetězce ve skriptování Bash Shell

  3. Jak vytisknu barevný text do terminálu Linux?

  1. Jak napsat smyčku v Bash

  2. Jak používat příkaz Grep k vyhledání textu v souborech

  3. Jak spojit dva textové soubory v Linuxu

  1. Jak převést textové soubory na všechna velká nebo malá písmena

  2. Jak gzipovat všechny soubory ve všech podadresářích v bash

  3. Jak mohu nechat tcpdump zapisovat do souboru a standardní výstup příslušných dat?