如何将 CTRL-D 传递给脚本中的命令行?

Duc*_*uck 7 bash email

我正在使用这条线

 ( cat bodyText.txt; uuencode backup.tar ) | mail -s "backup" myEmail@myserver.com
Run Code Online (Sandbox Code Playgroud)

在将由 cron 触发的 bash 脚本中。

这一行几乎是完美的,但它挂起等待Ctrl-D被输入,因此可以发送消息和附件。

如何在 bash 脚本中包含Ctrl-D以使此行起作用?

Oli*_*lac 4

  • uuencode 是: uuencode 名称 < 源文件

  • 也许只需要最后一个空行:; echo -e "\n\n" ;在右括号之前添加,然后重试?-

所以在你的情况下:

( cat bodyText.txt; uuencode backup.tar < backup.tar ; echo -e "\n\n" ; ) | mail -s "backup" myEmail@myserver.com
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用mutt它更好地处理附件,并了解 mime 类型等:

mutt -s "the subject" -a backup.tar -- myEmail@myserver.com < bodyText.txt
Run Code Online (Sandbox Code Playgroud)