Redirigere lo stdout di uno script bash allo stdin di un comando

2008-01-20 Thread Mattia
Ciao a tutti,

vorrei fare uno script che rediriga il suo stdout allo stdin di logger.
Per adesso devo creare una fifo per farlo, ma volevo sapere se si
poteva farlo senza creare file intermedi.

Leggendo qui:
http://www.faqs.org/docs/abs/HTML/ioredirintro.html

Dovrebbe essere un comando del tipo:
exec > >(logger)

Ma ottengo sempre l'errore:
syntax error near unexpected token `>'

Qual'è la sintassi corretta?



Re: Redirigere lo stdout di uno script bash allo stdin di un comando

2008-01-20 Thread Davide Prina

Mattia wrote:


vorrei fare uno script che rediriga il suo stdout allo stdin di logger.


devi usare una pipe, esempio

$ echo "Ciao" | sed "s/C/M/"


Dovrebbe essere un comando del tipo:
exec > >(logger)

Ma ottengo sempre l'errore:
syntax error near unexpected token `>'


prima di tutto non devi mai mettere uno spazio tra i simboli '>>'

'>' <- redirige l'output
'<' <- redirige l'input
'>>' <- redirige l'output con append
'<<' <- redirige l'input con append

Ciao
Davide

--
Dizionari: http://linguistico.sourceforge.net/wiki
Strumenti per l'ufficio: http://it.openoffice.org
GNU/Linux User: 302090: http://counter.li.org
Non autorizzo la memorizzazione del mio indirizzo su outlook


--
Per REVOCARE l'iscrizione alla lista, inviare un email a 
[EMAIL PROTECTED] con oggetto "unsubscribe". Per

problemi inviare un email in INGLESE a [EMAIL PROTECTED]

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Redirigere lo stdout di uno script bash allo stdin di un comando

2008-01-20 Thread Federico Di Gregorio

Il giorno dom, 20/01/2008 alle 14.59 +0100, Mattia ha scritto:
> Il problema era che la prima riga dello script era:
> #!/bin/sh
>
> Per farlo funzionare correttamente invece:
> #!/bin/bash
>
> Ma non dovrebbe funzionare lo stesso visto che /bin/sh è un link
> simbolico a /bin/bash??

No, perché alcuni tipi di redirezione non sono uno standard delle Bourne
shell ma un'estensione della Bash. /bin/sh garantisce di essere una
Bourne shell ma non è detto che sia una Bash. Per questo, per facilitare
il debug, se invochi la bash chiamandola "sh" invece di "bash", lei va
in modalità compatibile e si rifiuta di eseguire tutti i costrutti
avanzati.

federico

-- 
Federico Di Gregorio http://people.initd.org/fog
Debian GNU/Linux Developer[EMAIL PROTECTED]
INIT.D Developer   [EMAIL PROTECTED]
  Having paid our respects to the dead (Taligent), nearly dead
   (Objective-C) and legendary (Symbolics), let's start digging
   into the features that make Python a great language for mix-in
   programming.  -- Chuck Esterbrook


signature.asc
Description: Questa è una parte del messaggio	firmata digitalmente


Re: Redirigere lo stdout di uno script bash allo stdin di un comando

2008-01-20 Thread Mattia
On Sun, 20 Jan 2008 15:17:27 +0100
Federico Di Gregorio <[EMAIL PROTECTED]> wrote:

> > Ma non dovrebbe funzionare lo stesso visto che /bin/sh è un link
> > simbolico a /bin/bash??  
> 
> No, perché alcuni tipi di redirezione non sono uno standard delle Bourne
> shell ma un'estensione della Bash. /bin/sh garantisce di essere una
> Bourne shell ma non è detto che sia una Bash. Per questo, per facilitare
> il debug, se invochi la bash chiamandola "sh" invece di "bash", lei va
> in modalità compatibile e si rifiuta di eseguire tutti i costrutti
> avanzati.
> 
> federico

Grazie, sei stato molto esauriente.

Mattia.



Re: Redirigere lo stdout di uno script bash allo stdin di un comando

2008-01-20 Thread Mattia
On Sun, 20 Jan 2008 13:58:32 +0100
Davide Prina <[EMAIL PROTECTED]> wrote:

[...]

Scusami, non mi sono spiegato bene: intendevo dire redirigere lo stdout
in modo permanente, in modo che gli output di tutti i comandi andassero
a logger, non solo uno.

Il problema era che la prima riga dello script era:
#!/bin/sh

Per farlo funzionare correttamente invece:
#!/bin/bash

Ma non dovrebbe funzionare lo stesso visto che /bin/sh è un link
simbolico a /bin/bash??