文系男子が日和るIT開発~IT知識なしで飛び込んだIT企業

文系男子だからIT企業に就職するなんて考えてもみませんでしたが、日和ながら日々くらいついています。

while文~シェルスクリプト

 

シェルスクリプトで便利なwhile文について初歩的な部分のご紹介をします。

while文の構文

while [ 条件式 ] ; do 処理; done

while  [ 条件式 ]
do
    処理
done

 

while文の概要

while文は、条件式とその処理結果が真の場合、
処理をループし続ける繰り返し処理を行います。
処理結果が偽となった場合に、繰り返し処理が終了します。

繰り返し文を使うシーンはIT系企業の開発現場だけでなく、
運用現場でも非常に多くあるため、知っている方も多い文でしょう。

今回はシェルスクリプトにおけるwhile文であることから、
ルーティン作業が多いソフトウェアの運用担当者や、
サーバ運用担当者による使用するシーンが多いかもしれませんね。

 

whileと[の間に空白を

while文は、whileの後ろに条件式を記述することが多く、
「 [条件式] 」で表記しますが、

「while」と 「 [条件式] 」 の間には、
半角スペースや改行などが必要です。

続けて、 「 while[条件式] 」と記述しないように注意してください。

 

ワンライナーでwhileを書く時のセミコロン

while文は1行で記述する場合もありますし、
可読性を考慮して複数行で記述する場合もあります。

ここでの注意点は、
while文を1行で記述する場合には、
while [ 条件式 ] ; do 処理;
のように、
do の前に 「;(セミコロン)」を間に挟む必要があります

ただし、doの後には「;(セミコロン)」を記述してしまうと
文法エラーとなりこれはwhile文が実行されません。
処理を記述するか、改行を挟んでください。

 

無限ループ

「:(コロン)」、あるいは、「true」は真を表すため、
    while :
または
    while true
と記述すると、常に真となり、無限ループとなります。
 ( 無限ループから脱出するには Ctrl+C を押してください )

 

while文と数値比較

  • -eq : 等しいかどうかをチェック
  • -ne : 異なるかどうかをチェック
  • -lt : 数値<数値 となっているかチェック
  • -le : 数値≦数値 となっているかチェック 
  • -gt : 数値>数値 となっているかチェック
  • -ge : 数値≧数値 となっているかチェック