aspas duplas estão faltando no comando echo:
echo -e "$x" | ./perlscript
Eu estou fazendo o seguinte:
x="Hello to the world of tomorrow\n <pre>";
x="${x}$(tail -n 50 log/logfile.log)"
x="${x}</pre>";
echo -e $x | ./perlscript
O script Perl:
#!perl
# perlscript
open(MAIL, "sendmail -t")
print MAIL "EMAIL HEADERS\n\n"
print MAIL <STDIN>
close(MAIL);
Quando eu recebo o email, o arquivo de log não possui \n
dentro da tag <pre>
. O Hello to the world of tomorrow
funciona bem e o \n
é representado.
Como obtenho tail
para não remover \n
, ou é algo mais abaixo na cadeia?
Esta é uma maneira muito mais clara e idiomática de fazer o que você está tentando fazer:
{ printf 'Hello to the world of tomorrow\n <pre>\n'
tail -n 50 log/logfile.log
printf '</pre>\n'; } | ./perlscript
Não há motivo para que você primeiro armazene toda a saída em uma variável quando você for simplesmente empurrá-la para dentro do tubo.