2014-07-07 3 views
0

이 스크립트의 출력을 전자 메일 메시지의 본문으로 만들고 싶지만 먼저 파일로 리디렉션하지 않고 전자 메일로 리디렉션하고 싶지 않습니다. 기본적으로 외부 로그인/출력 파일 - 모든 작업은 스크립트 자체 내에서 수행되어야합니다 - 가능합니까?BASH : 전자 메일에 루프 출력 추가

예 :

#!/bin/bash 

email() { 

     echo "Results:" 

} 

for i in $(ls -1 test); do 

if [ -f "test/$i" ]; then 
     echo "'$i' it's a file." 
else 

     echo "'$i' it's a directory." 
fi 

done 

email | mail -s "Test" [email protected] 

출력 :

$ ./tmp.sh 
'd1' it's a directory. 
'f1' it's a file. 

답변

1

그것은 쉽게 :

#!/bin/bash 

email() { 

     echo "Results:" 
     cat 
} 

for i in $(ls -1 test); do 

if [ -f "test/$i" ]; then 
     echo "'$i' it's a file." 
else 

     echo "'$i' it's a directory." 
fi 

done |email | mail -s "Test" [email protected] 

당신은 email 기능의 입력으로 테스트의 출력을 필요 cat 그냥 떨어져 있음을 알아 그것을 통과 시켜라.