Bashでのループ操作
1.ループの目的は、配列、複数のファイル、変数の操作に主に使用される命令を繰り返すことです.
2.Bashには、for、while、untilの3種類のループ文があります.
2.1 for文
for文には2つの構造があります.
(1):
ここでdata_リストで検討してみましょう
datalistは{1,2,3,10},{1..10}, 1 2 3 4,
Datalistは{1..3,4,5},(1,2,3),[1,2,3],{1 2,3 4}であってはならない.
上記の式ではlistを$iと書くのではなく、変数の名前と書くしかありません.Bash 4.0+以上のバージョンでは、{1.1.10..2}は、1~10のすべての奇数を出力しますが、以下のバージョンではこの機能はありません.
特殊なのは
と書くこともできます
ここで``と$()の2つの記号はbashのコマンドを含むために専用に装備されています.
(2) :
ここでexp 1はカウンタの初期化である.exp 2はサイクル終了判定文である.exp 3はカウンタ加算動作である.(i=0;i<=10;i++))および(i=0;i>=-10;i-))が一般的である.
注意:次のスタイルは代替として使用できます(セミコロンの位置に注意)
2.2 while文
while文の一般的な表現は
特に、ここで[]内の式は[または]に近づくことができず、否定側のプログラムが間違っていることに注意してください.通常のcommandのカウンタは、((i++))および((i-))であることができる累積が必要である.
2.3 until文
until文は基本的にwhileと同じ使い方ですが、違いはwhileのconditionが満足しているときはプログラムが進行し、untilのconditionが満足していないときはプログラムが進行します.
2.Bashには、for、while、untilの3種類のループ文があります.
2.1 for文
for文には2つの構造があります.
(1):
for list in data_list; do command; done
ここでdata_リストで検討してみましょう
datalistは{1,2,3,10},{1..10}, 1 2 3 4,
Datalistは{1..3,4,5},(1,2,3),[1,2,3],{1 2,3 4}であってはならない.
上記の式ではlistを$iと書くのではなく、変数の名前と書くしかありません.Bash 4.0+以上のバージョンでは、{1.1.10..2}は、1~10のすべての奇数を出力しますが、以下のバージョンではこの機能はありません.
特殊なのは
- for i in $(seq 1 2 20); do command; done
- for i in $(seq 1 -2 -10);do command; done
と書くこともできます
- for i in `seq 1 2 10`; do echo $i; done;
ここで``と$()の2つの記号はbashのコマンドを含むために専用に装備されています.
(2) :
- for (( exp1; exp2; exp3)); do command; done
ここでexp 1はカウンタの初期化である.exp 2はサイクル終了判定文である.exp 3はカウンタ加算動作である.(i=0;i<=10;i++))および(i=0;i>=-10;i-))が一般的である.
注意:次のスタイルは代替として使用できます(セミコロンの位置に注意)
- (1***)for _________
-
- do command; done
- (2***)for _________
- do command
- done
- (3***)for _________
- do
- command
- done
2.2 while文
while文の一般的な表現は
- while [ condition ] or [[ condition ]] #cannot be {}or ()
- do
- command
- done
特に、ここで[]内の式は[または]に近づくことができず、否定側のプログラムが間違っていることに注意してください.通常のcommandのカウンタは、((i++))および((i-))であることができる累積が必要である.
2.3 until文
until文は基本的にwhileと同じ使い方ですが、違いはwhileのconditionが満足しているときはプログラムが進行し、untilのconditionが満足していないときはプログラムが進行します.