On Mon, 13 Dec 2004 [EMAIL PROTECTED] wrote:
ciao sto scrivendo uno script bash da utilizzare con procmail riassumendo lo script e'
#!/bin/bash -x #Leggo soggetto mail e mittente #nomefile=($1) SUB=`grep ^Subject: $1`; REF=`grep ^From: $1`; echo "$REF" echo "$SUB"
se lo eseguo in shell passando un file contenente una mail tramite | da std input questo non funziona. $cat mail|script.sh mentre funziona se lo eseguo $script.sh mail
come mai? $1 rappresenta lo standard input per bash?
$1 viene espanso con il nome che passi come argomento, quindi ottieni:
SUB=`grep ^Subject: mail`;
che ovviamente funziona solo con script.sh mail :)
per fare quello che vuoi tu (con il cat | script.sh) devi usare (vado a memoria) qualcosa come:
#!/bin/bash INPUT="$(cat -)" SUB=$(echo "$INPUT" | grep ^Subject: ) REF=$(echo "$INPUT" | grep ^From: )
Attento che le virgolette che ho messo sono essenziali.
Probabilmente ci sono metod� pi� puliti ma al momento non mi vengono in mente.
bye CDF
P.S. l'uso di $(comando) al posto di `comando` � consigliato :)

