シェルスクリプトで無限ループする
1 2 3 4 5 6 |
#!/bin/sh while :; do echo "Hello world!" sleep 1 done |
1 2 3 4 5 6 |
#!/bin/sh while true; do echo "Hello world!" sleep 1 done |
どちらの方法でもできます。
シェルスクリプトのwhileはC言語などのwhileと同じように条件式が成り立つ間繰り返し処理を行います。
成り立つかどうかは戻り値で判断され、0だと成り立つと判断されます。
ここはC言語と逆です。
:はヌルコマンドと呼ばれており、戻り値に0を返すだけで何もしません。
trueコマンドは、戻り値に0を返すだけのコマンドです。
逆に1しか返さないfalseコマンドも存在します。
1 2 3 4 5 6 |
$ true $ echo $? 0 $ false $ echo $? 1 |