Re: script bash | $1
On Mon, 13 Dec 2004 pipex_0604@users.gamebox.net 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 :)
Reply to: