Come usare i flussi di Stdin, Stderr e StDout in Bash

Come usare i flussi di Stdin, Stderr e StDout in Bash

Tre flussi vengono aperti quando inizia il sistema operativo Linux. Questi sono stdin, stdout e stderr. La forma completa di stdin è l'input standard che viene utilizzato per prendere un input dall'utente. La forma completa di stdout è l'output standard che viene utilizzato per archiviare l'output del comando nel flusso stdout. La forma completa di Stderr è l'errore standard utilizzato per archiviare il messaggio di errore generato da qualsiasi comando nel flusso di dati. Gli usi di questi flussi sono mostrati in questo tutorial. I corrispondenti valori dell'identificatore numerico di stdin, stdout e stderr sono 0, 1 e 2.

Operatori di reindirizzamento di stdin, stdout e stderr

    • IL "<” or “0<” is used for the stdin stream.
    • Il ">" o "1>" viene utilizzato per il flusso STDOUT.
    • Il "2" viene utilizzato per il flusso Stderr.

Usi di stdin, stdout e stderr

Gli usi di stdin, stdout e stderr sono mostrati in questa parte del tutorial usando più esempi.

Esempio 1: uso di stdin

Il metodo per prendere il contenuto di un file e stamparlo nel terminale è mostrato in questo esempio.

Esegui il seguente comando "Cat" per creare un file di testo chiamato TestData.txt con alcuni contenuti:

$ cat> testdata.TXT


Esegui il seguente comando "Cat" per aggiungere alcuni contenuti nel TestData.file txt:

$ cat >> testdata.TXT


Esegui il seguente comando "Cat" per prendere un input da TestData.file txt e stampalo nel terminale:

$ cat < testdata.txt


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti dopo aver aggiunto la stringa, “LinuxHint.com "e" linguaggio di scripting "in TestData.file txt:


Esempio 2: uso di stdout

Il metodo per creare un file usando il tubo (|) e l'operatore di reindirizzamento è mostrato in questo esempio.

Esegui il comando seguente per scrivere un dati di stringa nel file di testo denominato testdata2.txt mediante tubazione. L'output del comando "eco" viene inviato all'ingresso del comando "cat" usando il tubo (|):

$ echo "impara la programmazione bash" | Cat> TestData2.TXT


Esegui il seguente comando "Cat" per controllare il contenuto di TestData2.file txt:

$ cat testdata2.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti. Secondo l'output, l'output del comando "eco" è scritto nel testdata2.file txt:


Esegui il comando seguente per scrivere l'output del comando "LS -l" in un file di testo denominato elenco.txt usando l'operatore di reindirizzamento ('>'):

$ ls -l> elenco.TXT


Esegui il seguente comando "Cat" per verificare il contenuto dell'elenco.file txt:

$ Cat List.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti. Secondo l'output, l'output del comando "LS -l" è scritto nell'elenco.file txt:


Esempio 3: uso di stdin e stdout

Il metodo di utilizzo sia stdin che stdout per prendere un input da un file e scriverlo in un file è mostrato in questo esempio.

Esegui il seguente comando "Cat" per prendere il contenuto di TestData.file txt e scrivilo nel file test.file txt e terminale:

$ cat < testdata.txt > Testfile.TXT


Esegui il seguente comando "Cat" per stampare il contenuto di TestData.file txt:

$ cat testdata.TXT


Esegui il seguente comando "Cat" per stampare il contenuto del file di test.file txt:

$ gatto testfile.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti. Secondo l'output, il contenuto di TestData.Il file TXT è scritto nel Testfile.file txt e stampato nel terminale:


Esempio 4: Uso di Stderr

Il contenuto dell'errore standard può essere stampato nel terminale o reindirizzato in un file o inviato a /dev /null che funziona come il cestino del riciclo. I diversi modi per passare l'errore standard sono mostrati in questo esempio.

Il comando seguente è valido e stampa la stringa "ciao" con la nuova linea. Quindi, non viene generato alcun errore standard per il seguente comando:

$ printf "%s \ n" "ciao"


Il comando seguente non è valido perché non esiste un comando chiamato "PIRNTF". Quindi, viene generato un errore standard e l'errore viene stampato nel terminale:

$ pirntf "%s \ n" "ciao"


Produzione:

Viene visualizzato il seguente output dopo aver eseguito il comando precedente. Secondo l'output, l'errore standard è stampato nel terminale:


A volte, richiede la stampa dell'errore personalizzato nascondendo l'errore standard per rendere l'errore più comprensibile per gli utenti. Questa attività può essere eseguita reindirizzando l'errore in /dev /null. Il "2>" viene utilizzato qui per reindirizzare l'errore in /dev /null.

Esegui il comando seguente per reindirizzare l'errore in /dev /null che non visualizzerà alcun errore se esiste un errore:

$ pirntf "%s \ n" "ciao" 2> /dev /null


Produzione:

Viene visualizzato il seguente output dopo aver eseguito il comando precedente. Secondo l'output, l'errore standard non viene stampato nel terminale per reindirizzare /dev /null:


A volte, l'errore standard richiede la memorizzazione in un file per un uso futuro. Questa attività può essere eseguita reindirizzando l'errore in un file utilizzando l'operatore "2>".

Esegui il comando seguente per reindirizzare l'errore standard in un file denominato ErrorFile.TXT:

$ pirntf "%s \ n" "ciao" 2> errorfile.TXT


Esegui il comando seguente per verificare il contenuto del file di errore.file txt:

$ Cat Errorfile.TXT


Produzione:

Viene visualizzato il seguente output dopo aver eseguito i comandi precedenti. Secondo l'output, l'errore standard è scritto correttamente nel file di errore.file txt:


L'errore standard può essere reindirizzato sia a /dev /null che all'errore file.file txt utilizzando il seguente comando:

$ pirntf "%s \ n" "ciao" 2> /dev /null> errorfile.TXT

Conclusione

Gli usi di stdin, stdout e stderr sono spiegati in questo tutorial usando più esempi che aiuteranno gli utenti di Linux a comprendere il concetto di questi flussi e ad usarli correttamente quando richiesto.