linux user group brescia

immagine del castello

Archivio della mailing list

Reindirizzare L'output

Gabriele Villi gvilli a iol.it
Mar 5 Set 2000 10:48:09 UTC
"pi.riKrK" wrote:
> 
> Ho un inconveniente da risolvere: lo script per l'avvio
> dell'"Open Sound System 4Front Technologies" produce un messaggio
> sullo schermo che vorrei eliminare.

> La domanda è questa: utilizzando in modo corretto gli operatori di
> reindirizzamento dell'output è possibile intercettare tutti i
> messaggi diretti allo schermo 

La gestione degli stream in unix e' un argomento abbastanza articolato; 
una shell, quando lancia un *qualsiasi* comando (quindi anche uno
script) apre per tale comando tre stream di default (0 input, 1 output,
2 error) e li associa ai dispositivi "fisici" tastiera e video. E' pero'
possibile istruire la shell in modo che vengano associati altri
dispositivi ai tre stream standard. La sintassi varia da shell a shell;
in particolare per la bash si usano gli operatori > < | >> << 
Puoi trovare il significato preciso di questi operatori nella man page
della tua shell (fai "man nomedellatuashell" cioe' ad esempio "man bash"
oppure "man csh" e cerca la sezione REDIRECTION o RIDIREZIONE - li'
trovi tutte le spiegazioni del caso. Se non sai come si usa man, dai
semplicemente "man man" e invio)
Altra documentazione la puoi trovare scaricandoti questo bel bigino 

http://wks.uts.ohio-state.edu/unix_course/unix.html

oppure in un altro libro che parli di unix (ne trovi a  migliaia)

Venendo al problema specifico: se vuoi evitare che l'output di AvviaOSS
compaia a video puoi dare (per bash)

AvviaOSS >/dev/null

oppure 

AvviaOSS 2>1 >/dev/null

che redirige anche gli errori. (per la cronaca /dev/null e' un
dispositivo fittizio, una sorta di buco nero che assorbe tutto e non
emette niente. E' piu' o meno equivalente al nil: di msdos) Attenzione
cosi' redirigi l'output di *tutti* i comandi contenuti in AvviaOSS
(tranne quelli che a loro volta specificano una redirezione).  Esempio
se AvviaOSS contiene

echo "ciao"
echo "miao" >/tmp/xx
echo "arrivederci"

allora se dai il comando AvviaOSS >/dev/null

non compare nulla sullo schermo ma comunque viene scritto "miao" nel
file /tmp/xx


> oppure è possibile fare programmi
> che riescano a scavalcare gli operatori?.
tecnicamente e' possibile (ma credo che la spiegazione esauriente vada
al di la' delle tue specifiche richieste. Se ti interessa, fai sapere).
In pratica nessun programmatore unix che abbia un briciolo di buon senso
lo farebbe a meno di specifiche e reali esigenze. 

> controlli faccia in sostanza 'solo un paio di insmod'. Anche se
> per me (principiante) non so bene cosa voglia dire.
insmod e' il comando che permette di caricare un modulo. Un modulo e' un
"pezzo" del sistema operativo che viene caricato solo quando serve
(tipicamente un driver).  Ad esempio, se tu non volessi usare la scheda
audio potresti evitare di caricare il modulo OSS; in questo modo non
occuperesti inutilmente delle risorse del sistema (ad esempio la
memoria)

ciao.
gv



Maggiori informazioni sulla lista Lug