我正在尝试创建一个 shell 脚本,它可以回应一堆命令,并让它相当简单地发送电子邮件。
{
echo $(hostname)
echo ""
echo "Uptime" $(uptime)
echo ""
echo "Who is on the server?" $(who)
echo ""
echo "Recent logs" $(last)
}| mail -s "Homework Report" [email protected]
电子邮件上的输出全部是单个句子,原始格式:
我的主机名
正常运行时间下午 2:27 运行 15:59,1 个用户,平均负载:0.44、0.55、0.51
谁在服务器上? ec2-user pts/0 12 月 17 日 14:26 (pool-123-45-678-91.state.fios.verizon.net)
最近的日志 ec2-user pts/0 12 月 17 日 14:26 pool-123-45-678-91.state 星期日 12 月 17 日 14:26 仍在登录 pool-123-45-678-91.state 星期日 12 月 17 日 05:12 - 05:13 (00:01) pool-123-45-678-91.state 星期日 12 月 17 日 02:45 - 05:12 (02:26) ec2-user pts/0 pool-123-45-678-91.state 星期六 12 月 16 日 22:28 - 02:16 (03:47) 启动时间 星期六 12 月 16 日 22:28 关闭时间 星期六 12 月 16 日 22:27 ec2-user pts/0 pool-123-45-678-91.state 星期六 12 月 16 日21:48 - 关闭(00:38) ec2-user pool-123-45-678-91.state 周五 12 月 15 日 23:45 - 23:45(00:00) ec2-user pts/0 pool-123-45-678-91.state 周五 12 月 15 日 23:23 - 23:23(00:00) ec2-user pts/0 pool-123-45-678-91.state 周五 12 月 15 日 23:23 - 23:23(00:00) 启动时间 周五 12 月 15 日 23:23 启动时间 周五 12 月 15 日 23:21 utx.log 开始于 周五 12 月 15 日 23:21:59 UTC 2017
格式化输出的最佳方法是什么,以使其看起来像命令行上的输出?
答案1
变量 $last 被回显为单独的单词 - 引用它(“$last”)以保留换行符。