脚本内容如下:
#!/bin/bash
DISKREPORT="$(df -hl | grep -vE 'boot|shm' | column -t)"
mail -s "$HOSTNAME Disk Usage Report: $diskreport" myemail@mydomain.com
发生的事情是脚本在我调用它时挂起,就好像在等待其他事情发生一样。我做错了什么?
编辑:这就是我最终得到的,感谢您的帮助:
#!/bin/bash
#set -x
DISKREPORT=$(df -hl | grep -vE 'boot|shm' | column -t | cut -f5 --complement)
mail -s "$HOSTNAME Disk Usage Report" jsc-dl-agdl-admin@mail.nasa.gov << EOF
$DISKREPORT
EOF
最佳答案
您的“邮件”命令正在等待邮件正文的标准输入(有关更多详细信息,请参阅 here)。您可以使用 heredoc 喂养 body 例如
$ mail -s "My subject" <<EOF
My
mail
body
here
EOF
另请注意,DISKREPORT
是以大写字母定义的,但您稍后使用小写字母引用它,这在 bash 的世界中是一个不同的变量!
关于linux - 将 df 存储在变量中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863814/