2016-06-16 8 views
1

を働いていないスクリプトの内容です:何が起こっている保存DFがここ

#!/bin/bash 
DISKREPORT="$(df -hl | grep -vE 'boot|shm' | column -t)" 

mail -s "$HOSTNAME Disk Usage Report: $diskreport" [email protected] 

私はそれを呼び出す場合に発生する他の何かを待っているかのようにスクリプトは、ハングアップしています。私は間違って何をしていますか?

EDIT:

#!/bin/bash 
    #set -x 
    DISKREPORT=$(df -hl | grep -vE 'boot|shm' | column -t | cut -f5 --complement) 

    mail -s "$HOSTNAME Disk Usage Report" [email protected] << EOF 
    $DISKREPORT 
    EOF 

答えて

2

あなたのメール 'コマンドが(詳細はhereを参照してください)メール本文のための標準入力を待っている:これは私は、あなたの助けに感謝してしまったものです。あなたはheredocを使用して身体を供給することができます。

$ mail -s "My subject" <<EOF 
My 
mail 
body 
here 
EOF 

DISKREPORTは大文字で定義されていますが、それ以降のbashの世界では異なる変数であり、小文字を使用して、それを参照していることにも注意してください!

+0

これは、私がなってしまったものをあなたの助けのおかげである: #/ binに/ bashの の#set -x DISKREPORT = $(DF -hl |コラム| grepを-vE 'ブート| SHM'! -t | cut -f5 --complement) mail -s "$ HOSTNAMEディスク使用量レポート" [email protected] << EOF $ DISKREPORT EOF – lmind

+0

畳み込まれていますが、動作します。私の解決策は良かった。 [切手の足]ちょうど冗談;-) – Kusalananda

1

あなたは(、別のユーザーが指摘したように、mailが入力を待っていることでしょう)あなたのコード内の未定義の変数$diskreportを使用しているが、それとは別に、あなたはむしろ体でレポートを持っていないでしょうメッセージの

df -hl | grep -vE 'boot|shm' | column -t | mail -s report [email protected] 
関連する問題