送る前に手紙が空であることを確認するために手紙を郵送する [重複]

送る前に手紙が空であることを確認するために手紙を郵送する [重複]

ユーザーグループにディレクトリの内容を含む電子メールを送信するスクリプトを変更しようとしています。私が探している修正は、送信する前に有効な出力があるかどうか、以下のスクリプトを確認することです。

スクリプトは次のとおりです。

cd $foo/bar && ls | mail -s "Filenames in the \$foo/bar Directory" [email protected]

このメールを送信する前にファイルが空であることをテストしたいと思います。なぜなら、このファイルは36台のサーバーで実行され、それらの多くは同じ人に送信されるため、空白の電子メールを複数送信したくないからです。現在の状態)。

他の同様の質問を見ましたが、それらのどれも問題を完全に解決できませんでした。これは最も近いものです:

https://stackoverflow.com/questions/1169612/how-can-i-write-a-shell-script-that-will-email-me-a-file-if-the-file-is-not-empt

ただし、ファイルを添付しても機能しません。さらに、コンテンツ検証を実行する必要があるman mailフラグ-Eが返されますが、私はそれを使用しましたが、私のバージョンはその-Eオプションをサポートしていないようです(簡単に変更できる機能ではありません)。エラーが発生しますmail: invalid option -- E

どんな助けでも大変感謝します。一行で書く必要はありませんが、確かに役に立ちます!

編集 - 可能であれば、出力確認でディレクトリを無視する必要があります!最初はこれを明確にしませんでしたが、/errors$ foo / barにディレクトリがある場合はこれを回避できますか?

ベストアンサー1

たとえば、次のようにテストしてみますwc -l

cd $foo/bar && [ `ls | wc -l` -gt 0 ] && ls | mail

おすすめ記事