これは watch
を使用して簡単に実行できます スクリプトを使用せずに。
watch -t -n 10 "(date '+TIME:%H:%M:%S' ; ps aux | grep "pattern" | wc -l) | tee -a logfile"
あなたが探していることを行うには、単純なスクリプト (@Ignacio が指摘したように) でうまくいくはずです:
while true
do
echo "$(date '+TIME:%H:%M:%S') $(ps aux | grep "pattern" | wc -l)" | tee -a logfile
sleep 2
done
tee
を使用しています >>
の代わりに 端末で出力を確認したり、ログに記録したりできるようにします。
watch
ディスプレイへの出力用です。単純に X 秒ごとにコマンドを実行したい場合は、そのために遅延ループを使用する必要があります。
while true ; do somecommand ; sleep 2 ; done