Bash 脚本将多个命令发送到一封电子邮件

Bash Script pipe multiple commands to one email

我想将各种命令的输出写成电子邮件。 我试过这个:

#!/bin/bash

(echo $(date); echo $(top);sudo apt-get update && sudo apt-get upgrade -y)  | mail -s "Updated!" xxxxxxxxxxx@gmail.com -a "From: UpdateNotify<xxxxxxxx@gmail.com>";

脚本是无限的。 :/

我该怎么做?我需要一封电子邮件中的日期、最高输出和更新日志。

查看cron-aptnullmailer系统更新后发送邮件。

这是正确的做法,问题出在 echo $(top)top 是一个交互式应用程序,所以永远不会 returns。

您应该使用 ps 来列出当前进程 运行。

jas_raj 答案是正确的,但是如果您喜欢 top 的输出,您可以 运行 在批处理模式下:top -bn 1 这将使顶部在它之后立即退出运行s 一次。