我有一个包含以下列表的文件
Listing.txt
File1.txt
File2.txt
File3.txt
File4.txt
File5.txt
我有一个shell脚本,它在我的电子邮件中使用该文件作为正文。
myscript.sh
#!/bin/ksh
recipients=/recipients.txt
listing=/listing.txt
email_content=/email.txt
echo `cat $listing` > $email_content
mail -s "File Listing" `cat $recipients` < $email_content
然而,当我收到邮件时,内容似乎是这样的。它们被打印成一排。
File1.txt File2.txt File3.txt File4.txt File5.txt
我怎样才能让列表与列表中列出的列表类似呢?
答案 0 :(得分:1)
你可以尝试一次:
mail -s "File Listing" `cat $recipients` < echo "`cat ${email_content}`"
答案 1 :(得分:0)
你的问题在于
echo `cat $listing` > $email_content
对echo的参数进行解释,换行符丢失 您可以使用引号
来解决此问题echo "`cat $listing`" > $email_content
您可以使用
缩短解决方案(由@KaushikNayak提供)cat $listing > $email_content
# or
cp $listing > $email_content
# or
mail -s "File Listing" `cat $recipients` < $listing
尽量避免背景并使用更多的引号和花括号:
mail -s "File Listing" $(cat "${recipients}") < "${listing}"