linux - 将 df 存储在变量中不起作用

标签 linux bash

脚本内容如下:

#!/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/

相关文章:

linux - 需要这个 UNIX 命令的帮助

regex - 将 tail -n 的输出重新创建到文本文件

bash - jenkins - 如何将值从 bash 传递到 groovy?

在特定时间运行多个命令的linux脚本

c - 两次向 Linux 内核双链表添加元素

linux - 阻塞信号

linux - 在 bash 脚本中用下划线替换连字符

php - 将 exec 与 PHP 一起使用是一种好习惯吗?

bash - 如何使 .bashrc 别名在 vim shell 命令中可用? (:! ...)

bash - 大型文件夹的并行 tar 拆分