[shell script]while文


デフォルトwhile文


後の条件文がwhileである場合、文はdo~doneの間でコマンドを実行する繰り返し文である.
$ cat test1
#!/bin/bash
var1=10
while (( $var1 > 0 ))   <----- 또는 [ $var1 -gt 0 ]
do
        echo "var1: $var1"
        (( var1 = $var1 - 1 )) <----- 또는 var1 = $[$var1 - 1]
done

$ ./test1
var1: 10
var1: 9
var1: 8
var1: 7
var1: 6
var1: 5
var1: 4
var1: 3
var1: 2
var1: 1

複数のコマンドの使用

while文で複数のコマンドを使用することもできます.
while command1
	command2
do
	commands
done
最後のコマンドは条件文で、繰り返しを終了するためにチェックされます.
$ cat test1
#!/bin/bash
var1=10
while echo $var1
        (( $var1 > 0 ))
do
        echo "var1: $var1"
        (( var1 = $var1 - 1 ))
done

$ ./test1
10
var1: 10
9
var1: 9
8
var1: 8
7
var1: 7
6
var1: 6
5
var1: 5
4
var1: 4
3
var1: 3
2
var1: 2
1
var1: 1
0
出力から見ると、最後のvar10である.echo $var1が1回運転すると、
チェック(( $var1 > 0 ))は、終了していることがわかります.