LoginSignup
19
18

More than 3 years have passed since last update.

シェルスクリプトで無限ループ処理させる

Last updated at Posted at 2019-09-25

シェルスクリプトで無限ループや回数指定でなにか処理をさせたいときのメモ。

1秒ごとに日付を表示する

#!/bin/sh

while true
do
  sleep 1
  date
done

dateコマンドのところを自由に書けば良い。
秒単位ではなくもっと刻みたい場合は、usleepを使う。(usleepはマイクロ秒指定であることに注意)

60秒間だけ日付を表示する

#!/bin/sh

for i in `seq 1 60`
do
  sleep 1
  date
done

sleep 1しているから60秒間になるが、sleep 1しなければ60回実行するという意味になる。

起動

起動はバックグラウンドでもフォアグラウンドでも。
下記はバッググラウンドの例。

$ ./loop.sh &

停止

バックグラウンドで起動している場合はkillall

$ killall loop.sh

killallで止まらない場合は、-9 で強制終了。


$ killall -9 loop.sh

フォアグラウンドで起動している場合は、Ctl+Cで止める。


$ ./loop.sh 
Wed Sep 25 20:50:02 JST 2019
Wed Sep 25 20:50:04 JST 2019
Wed Sep 25 20:50:05 JST 2019
Wed Sep 25 20:50:06 JST 2019
^C
$ 



Ctl+Cで止まらない場合は、Ctl+Zでサスペンドしてコンソールを抜けてから、killallする。

19
18
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
18