

Indirizzare l’output dei comandi shell in un file.
Cosa potrebbe serivre questa funzionalita’? Potrebbe essere necessario monitorare uno script controllandone l’esecuzione o gli errori, oppure potrebbe essere utile per indirizzare l’output del comando in un file su cui un’altro script recuperera’ le informazioni per eseguire altre funzioni.
Vediamo ora i diversi metodi per indirizzare l’output in un file
user@linux:$ comando > nomefile.txt
Questa modalita crea all’esecuzione di ‘comando’ un file di nome ‘nomefile.txt’ con all’interno tutto quello che sarebbe stato stampato a video nella shell di esecuzione, se il file non esiste lo crea, altrimenti se gia’ esistente lo sovrascrive. Dunque il simbolo ‘>’ sta a indicare la modalita di scrittura nel file. Vediamo quali sono le opsioni che possiamo usare :
| simbolo | descrizione |
|---|---|
| > | Scrive in nuovo file, se esiste lo sovrascrive |
| >> | Scrive accodando alla fine del file se esiste, se non presente crea il file |
| 2> | Scrive solo gli errori standard se file esiste lo sovrascrive. L’output del comando viene mandato a video |
| 2>> | Come sopra ma accoda gli errori alla fine del file |
| &> | Scrive sia l’output che gli errori standard sul file e non visualizza nulla sul video |
| &>> | come sopra ma accoda alla fine del file |
Un secondo metodo per reindirizzare e’ l’uso di tee. Se con il metodo precedente l’output del comando veniva reindirizzato sul file senza mostrare nulla a monitor, con tee e’ possibile indirizzare l’output nel file ed allo stesso tempo visualizzarlo sul monitor.
user@linux:$ comando | tee nomefile.txt
Nella tabella sotto sono riportati le varie versioni del comando e il loro risultato.
| metodo | descrizione |
|---|---|
| | tee | manda a schermo il risultato del comando in piu scrive sul file, se il file esiste lo sovrascrive |
| | tee -a | manda a schermo il risultato del comando in piu scrive sul file, se il file esiste aggiunge il testo alla fine |
| |& tee | Manda a schermo sia l’output che gli errori standard in piu scrive tutto sul file , se esiste lo sovrascrive |
| |& tee -a | Manda a schermo sia l’output che gli errori standard in piu scrive tutto sul file se esiste aggiunge il testo alla fine |
