Lavorare con gli script di shell è sempre stato interessante per i programmatori e gli amministratori di sistema perché l'output aiuta entrambi con il debug e il monitoraggio. La configurazione della maggior parte delle distribuzioni Linux è in gran parte basata su file, quindi è importante comprendere il concetto di scrivere dati in un file di testo utilizzando uno script o reindirizzando l'output dalla riga di comando.
Linux utilizza tre flussi di dati principali durante la comunicazione con l'utente e il computer:
- stdin (ingresso STandard)
- uscita standard (uscita STandard)
- stderr (ERRORE STandard)
1. stdin
Questo è il flusso di dati per l'immissione di informazioni. Qualsiasi input da qualsiasi dispositivo come una tastiera o un mouse rientra nel flusso di dati di input standard. stdin è rappresentato da 0 ID flusso.
[ Potresti anche divertirti a leggere: Cinque modi per utilizzare gli operatori di reindirizzamento in bash ]
2. normale
Questo è il flusso di dati per l'output dei dati. L'output dei dispositivi (come monitor, altoparlanti, ecc.) rientra nel flusso di dati di output standard. Stdout è rappresentato da 1 ID flusso.
3. stderr
L'errore standard viene utilizzato per gestire eventuali errori prodotti dai comandi. Qualsiasi flusso di dispositivi (come monitor, altoparlanti, ecc.) che avverte l'utente che qualcosa è andato storto rientra in stderr. stderr è rappresentato da 2 ID flusso.
Come scrivi i dati su un file?
Utilizza gli operatori di reindirizzamento per recuperare i dati dai flussi stdout e stderr e reindirizzarli a un file di testo.
Reindirizzamento :Il reindirizzamento è una funzionalità Linux utilizzata per modificare i dispositivi di input/output durante l'esecuzione di un comando.
Reindirizzamento output/errore
Per scrivere dati in un file di testo da uno script Bash, utilizza il reindirizzamento di output/errore con >
e >>
operatori di reindirizzamento.
>
Sovrascrive i dati in un file di testo.
>>
Aggiunge i dati a un file di testo.
Creazione di uno script di base e comprensione del reindirizzamento
date >> test1.txt
who >> test1.txt
date > test2.txt
who > test2.txt
Qui l'output di entrambi i comandi verrà aggiunto a test1.txt
mentre test2.txt
conterrà solo l'output di who
comando.
Lavorare ulteriormente con il reindirizzamento
Lo script precedente reindirizzerà solo l'output e fallirà in caso di errore. Per lavorare con il reindirizzamento per output, errore o entrambi, devi specificare i parametri aggiuntivi.
Per reindirizzare l'output:>
o >>
o 1>
o 1>>
Per l'errore di reindirizzamento:2>
o 2>>
Per reindirizzare entrambi:&>
o &>>
Errori di reindirizzamento
date --who 2>> test1.txt
who 2>> test1.txt
Per reindirizzare solo gli errori, hai specificato il parametro specifico per l'errore. Il file di output conterrà solo l'output del primo comando perché ha un argomento errato.
Altri argomenti possono essere utilizzati in modo intercambiabile per ottenere funzionalità diverse.
La scrittura dello script per altri comandi è la stessa dello script precedente e richiede gli operatori visualizzati sopra.
[ Scarica ora:una guida per l'amministratore di sistema allo scripting Bash. ]
Concludi
Il reindirizzamento dei dati a stdout o stderr è molto utile sia per gli sviluppatori che per gli amministratori di sistema. La comprensione di questi strumenti e dei relativi risultati ti aiuterà a creare nuovi file, risolvere i problemi e raccogliere informazioni sul sistema.