以下のようなシェルで簡単にメール報告するものを作っていますが、

$tmpという一時ファイルを生成してしまうことが不満です。
一時ファイルを生成せずに、同じことをやる方法を教えてください。

#!/bin/sh
tmp=/path/to/tmp.txt
cd /target
for i in `ls`; do du -hs $i; done > $tmp
df -h >> $tmp
cat $tmp | mail -s "disk usage report" foo@bar.com

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/02/21 11:53:24
  • 終了:2008/02/21 13:08:50

回答(2件)

id:Bookmarker No.1

しおり回答回数191ベストアンサー獲得回数342008/02/21 12:26:42

ポイント35pt

単純にパイプでつなげば良いのでは。

#!/bin/sh
cd /target
(for i in `ls`; do du -hs $i; done; df -h) | mail -s "disk usage report" foo@bar.com

# ダミー: http://q.hatena.ne.jp/1203562403

id:fjkktkys

ありがとうございます。

2008/02/21 13:08:37
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402008/02/21 12:41:54

ポイント35pt
#!/bin/sh
cd /target
( for i in `ls`; do du -hs $i; done ; df -h ) | mail -s "disk usage report" foo@bar.com

Manpage of BASH

id:fjkktkys

ありがとうございます。

2008/02/21 13:08:38

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません