$(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
# 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

어쨌든 파이프에 순차적으로 푸시할 때 변수의 모든 출력을 먼저 버퍼링해야 할 이유가 없습니다.

관련 정보