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