私は次のことをしています:
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
とにかく、パイプに順次プッシュするときに変数のすべての出力を最初にバッファリングする理由はありません。