Shell III parte
Transcript
Shell III parte
La Shell: Redirezione I/O File Standard Normalmente, un programma (comando) opera su più files In Unix esiste il concetto di file standard: – standard input: il file da cui normalmente un programma acquisisce i suoi input – standard output: il file su cui normalmente un programma produce i suoi output – standard error: il file su cui normalmente un programma invia i messaggi di errore 1 Shell Unix - Linux I/O comando Standard Input comando Standard Output Standard Error tastiera video Ridirezione Input: < o < < Output: > o > > << e >> servono per scrivere in coda ad un file senza perdere il contenuto originale 2 Redirezione Standard Output comando argomenti > o >> file Redirige lo standard output del comando sul file: • se file non esiste, viene creato • se file esiste, viene riscritto (>) oppure il nuovo output viene accodato (>>) Esempio: $ who nadja pts/1 Jun 10 23:12 (di.uniba.it) $ who > whofile $ who > /dev/pts/1 nadja pts/1 Jun 10 23:12 (di.uniba.it) $ Redirezione Standard Input comando argomenti < (<<) file Redirige lo standard input del comando sul file, cioè fa sì che l’input di un comando provenga, anziché dalla tastiera, da un file Esempio: $ mail uno < memo Redirige lo standard input al comando mail in modo che provenga dal file memo. Consente di inviare messaggi ad altri utenti L’effetto totale è quello di inviare il contenuto del file memo come messaggio all’utente uno 3 cat cat file… "concatenate" Concatena i file e li scrive sullo standard output... Esempio: file1 ei fu % cat file1 file2 file2 siccome immobile ei fu siccome immobile % cat file1 file2 > file3 % ... a meno che manchino gli argomenti, nel qual caso scrive lo standard input sullo standard output % cat < file1 ei fu % cat < file1 > file3 % cat > file3 < file1 Redirezione Standard Error In sh e ksh: comando argomenti 2> file 2>> file (Analogo a > e >>) Esempio: $ rm file file: No such file or directory $ rm file 2> error $ cat error file: No such file or directory $ 4 Redirezione Standard Error In csh: comando argomenti >& file >>& file (Analogo a > e >>) Redirige standard output e standard error sullo stesso file Nota Lo standard error non si può redirigere singolarmente, se non con un trucco: (comando > file1) >& file2 Esempio: (cat myfile > outfile) >& errfile Se myfile esiste, il suo contenuto viene scritto su outfile, altrimenti il messaggio di errore di cat viene scritto su errfile Ma... Per redigere correttamente, è necessario conoscere, di ogni comando: – come usa lo standard input – come usa lo standard output – come usa lo standard error – come usa eventuali altri file 5