Linux - if / for / while



 ◆ if 文

 シェルスクリプトでは、先頭順からコマンドを実行するだけでなく条件で処理を分岐することができます。
 条件によって処理を選択する場合は
if 文を使用します。この構文では必ず iffi で囲む必要があります。


              


 ◆ iftest.sh ファイルの内容確認

 $ cat iftest.sh

 #!/bin/bash
 if test -f data.txt
 then
  echo "data.txtファイルは存在します"
 else
  echo "data.txtファイルは存在しません"
 fi



 ◆ iftest.sh ファイルの実行結果 ( 先ず、ls により data.txt ファイルが存在することを確認しています )

 $ ls
 data.txt


 $ source iftest.sh
 data.txtファイルは存在します




 なお、条件分岐が3つの場合の if 文は以下の通りになります。



 ◆ for 文

 繰り返しの処理を実行するためには
for 文を使用します。指定したリストに沿って処理を繰り返します。


          


 ◆ fortest.sh ファイルの内容確認

 $ cat fortest.sh

 #!/bin/bash
 for VAR in Level1 Level2 Level3
 do
  echo LinuC $VAR
 done


 ◆ fortest.sh ファイルの実行結果

 $ source fortest.sh

 LinuC Level1
 LinuC Level2
 LinuC Level3



 以下の実行例では、seqコマンドを利用してfor文を実行しています。

 ◆ fortest2.sh ファイルの内容確認

 $ cat fortest2.sh

 #!/bin/bash
 for NUM in `seq 1 3`
 do
  echo LinuC Level $NUM
 done


 ◆ fortest2.sh ファイルの実行結果

 $ source fortest2.sh

 LinuC Level1
 LinuC Level2
 LinuC Level3



 ◆ while 文

 条件文が真である間は、繰り返しの処理を実行するためには
while 文を使用します。


          


 ◆ whiletest.sh ファイルの内容確認

 $ cat whiletest.sh

 #!/bin/bash
 while read LINE
 do
  echo LinuC Level $LINE
 done < test.txt


 ◆ test.txt ファイルの内容確認

 $ cat test.txt

 1
 2
 3


 ◆ whiletest.sh ファイルの実行結果

 $ source whiletest.sh

 LinuC Level1
 LinuC Level2
 LinuC Level3


 リダイレクション < でテキストファイル test.txt からの入力に切り替えています。done < test.txt
 により、test.txtファイルの内容を読み込む処理を実行しています。そのファイル内容はLINE変数に1行
 ごとに読み込まれて格納されます。readコマンドで読み込まれるLINE変数が空になるまで「真」と判断
 されて、最終行まで読み込んだ後は「偽」と判断されたwhile文が完了します。



Linux 技術入門

Copyright(C) 2002-2024 ネットワークエンジニアとして All Rights Reserved