次のページ
前のページ
目次へ
この章では、for , while , そして util によるルー
プについて述べます。
bash の for は、他の言語での使い方と若干異なります。基本的に
は、ある文字列内の単語をあたまから順に反復処理するものです。
while は、制御式が真の間はコードを実行していて、偽になったとき
(あるいは実行コード内に break が明示されている場合)にのみ停止します。
until ループは、制御式が偽と評価されている間はコードが実行される
という点を除くと、while ループとほぼ同じです。while と
until が似ていると思ったなら、それは正しい考えです。
#!/bin/bash
for i in $( ls ); do
echo item: $i
done
二行目で、変数 i が宣言されています。これには、$( ls ) によっ
て出力される様々な値が(順番に)代入されていきます。
三行目は、必要であればもっと長くできます。すなわち、四行目の done
の前に複数の行が存在してもかまいません。
四行目の done は、変数 $i の値を使用していたコードがそこで
終了したことを示していています。したがって、$i に新しい値を代入する
ことが可能です。
上記は、はほとんど意味がないスクリプトです。for ループを使用するもっと
有益な方法は、以前の例題にあったように、ある種のファイルだけを選択的に処理す
る場合に使うことだと思います。
Fiesh さんから以下のような形式のループを付け加えたらどうかと言われました。
この for ループは、C 言語や Perl の for ループに類似した
使われかたをしています。
#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done
上記のスクリプトは、(C, Pascal, Perl といった)有名な言語の for の
制御構造を真似たものです。
#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done
次のページ
前のページ
目次へ
|