$(tail) を変数に追加して削除します。\n

$(tail) を変数に追加して削除します。\n

私は次のことをしています:

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

とにかく、パイプに順次プッシュするときに変数のすべての出力を最初にバッファリングする理由はありません。

関連情報