나는 다음을 수행하고 있습니다 :
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
# 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
어쨌든 파이프에 순차적으로 푸시할 때 변수의 모든 출력을 먼저 버퍼링해야 할 이유가 없습니다.