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

$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 13:08:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:Bookmarker No.1

回答回数191ベストアンサー獲得回数34

ポイント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

回答回数3344ベストアンサー獲得回数440

ポイント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

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

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

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

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

回答リクエストを送信したユーザーはいません