Fala Guilherme,
repare as linha abaixo:

$ IFS=;
$ $ od -h <<< "$IFS"
0000000 000a
$ IFS=\;
$ $ od -h <<< "$IFS"
0000000 0a3b

Repare que no dump em hexadecimal (só vale o que está à direita do espaço em
branco, o esquerdo é um sequenciador), na 1a tentativa a variável ficou
vazia (0a é um <ENTER>) e na segunda recebeu 3b, que é o valor ascii do
ponto-e-virgula em hexadecimal.

Isso é pq o ponto-e-vírgula é significativo para o shell (o interpreta como
o fim de um cmd) e portanto deve ser protegido da sua interpretação.
-- 
Abraços,
Julio
Cursos de Shell e Zenity?
*- Em SP ligue (11) 2125-4747;
- Em DF ligue (61) 3223-3000;
- No RJ darei um treinamento em 23/07 (p/ detalhes ligue (21) 2561-0867);
- Turmas fechadas em outras cidades ligue (21) 8112-9988*

2009/5/29 Guilherme Andrade <guilherme.andra...@gmail.com>

>
>
> Olá, estou fazendo um script que envia e-mails que estão em um arquivo de
> texto, email.txt.
> O arquivo está no formato nome;email e manda a mensagem que está no arquivo
> mensagem.txt
>
> Segue o script, porém está com erro ao ler a variavel email no comando mail
>
> #!/bin/bash
> IFS=;
> while read nome email
> do
> echo $nome ... $email
> echo "Caro $nome, `cat mensagem.txt`" | mail -s assunto $email
> done < email.txt
>
> Obrigado desde já, a quem puder me ajudar.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a