0

スクリプトを実行すると、次のエラーが表示されます。

6 行目: [: : 整数式が必要です

括弧内のコードは整数だと思いますが、どこが間違っているのかわかりません。これを修正する方法を教えてください。

if [ "$( df -h | grep hda1 | cut -c40-42)" -ge "80" ]; then 
  echo Subject: Production Server : Low Disk Space : Daily reporting for Server
fi
4

4 に答える 4

1

たくさんのパイプが流れています...

df -h | awk '/hda1/{sub(/%/,"")}$5>80'

追加のオーバーヘッドなしで cut|grep|cut|tr と同じように機能します

于 2013-05-24T18:23:17.133 に答える
1

df -h1G や 73M のような「人間が読める」出力を提供します。これらは明らかに整数ではありません。-h を省略してみてください。一致するようにカット間隔を調整する必要がある場合があります。

于 2013-05-24T18:11:37.590 に答える
1
if [ "$( df -h | grep hda1 | tr -s ' '|cut -d" " -f 5 | cut -c-2)" -ge 80 ]; then echo Subject: Production Server : Low Disk Space : Daily reporting for Server

使用率を確認しようとしている場合。これは実装するためのより良い方法になると思います。

于 2013-05-24T18:13:36.007 に答える
0

これは私にとってはうまくいきます:

[[ $(df -h | grep hda1 | cut -c40-42) -ge 80 ]]

あなたの質問を編集しfiました。

于 2013-05-24T18:12:38.470 に答える