シェルスクリプト(bash)でforループ

こんにちは、さるまりんです。

コマンドラインからもらった数値の回数分繰り返す処理を書く必要があったのでメモしておきます。

for ((開始; 継続の条件; 変化))
do
 繰り返す内容
done

他のプログラミング言語と似ていますね。

次のスクリプトは引数でもらった数字から0までカウントダウンします。

countdown.sh

#!/bin/sh

NUM=$1

if [ -z $NUM ]
then
  NUM=10
fi

for ((i=$NUM; i>=0; i--))
do
  sleep 1
  echo $i
done

実行するとこんな感じです。
数字が表示される間に1秒、sleepで待ちます。

$ ./countdown.sh 25
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

繰り返し回数が決まっていたらforループが便利ですよね。
他のプログラミング言語ではやったことがあったのですが、シェルスクリプトではやってなかったので。

読んでくださってありがとうございました。

それではまた!