#!/bin/bash
( tail -f -n0 /proc/loadavg 2> /dev/null & ) | grep -q "^[1-9]"
echo 'The millenium crystals are gunna blow!'
私はスマートで、それがうまくいくと思いました。実行から始まり、最初の文字でない限り、ただ停止して反応しません。[1-9]
答え1
tail
改行ではなく新しい行を探します。
-f, --follow[={name|descriptor}]
output appended data as the file grows;
この動作を直接確認するには、このコマンドを使用して次の行を変更できますtestfile
。
while true ; do
sed "s/^.*$/$(date)/" -i testfile
sleep 1
done
Wileループを使用して行の変更を確認できます。
while true ; do
grep -q "^[1-9]" /proc/loadavg && echo "$message"
sleep 1
done
答え2
私はgrepでtailを使って新しい行だけでなく変更を得ることができると思います。
ここに来る前に、私は/proc/loadavgが実際にはファイルではなくカーネルインターフェースであることを読んでいました。たぶんあなたは正しいと思うかもしれませんが、可能であっても私はまだそれに満足しています。
継続的なロードループの代わりにinotify通知を受けたいのですが、コンピュータが拒否しているようです。