我正在做以下事情:
x="Hello to the world of tomorrow\n <pre>";
x="${x}$(tail -n 50 log/logfile.log)"
x="${x}</pre>";
echo -e $x | ./perlscript
Perl 脚本:
#!perl
# perlscript
open(MAIL, "sendmail -t")
print MAIL "EMAIL HEADERS\n\n"
print MAIL <STDIN>
close(MAIL);
\n
当我收到电子邮件时,日志文件中没有任何<pre>
标签。工作Hello to the world of tomorrow
正常并且\n
有代表性。
我如何才能tail
不删除任何\n
,或者它是链下游/上游的东西?
答案1
命令 echo 中缺少双引号:
echo -e "$x" | ./perlscript
答案2
这是一种更干净、更惯用的方式来完成您想要做的事情:
{ printf 'Hello to the world of tomorrow\n <pre>\n'
tail -n 50 log/logfile.log
printf '</pre>\n'; } | ./perlscript
无论如何,当您只是将其按顺序推入管道时,没有理由需要先将所有输出缓冲在变量中。