◆ if 文
シェルスクリプトでは、先頭順からコマンドを実行するだけでなく条件で処理を分岐することができます。
条件によって処理を選択する場合は if 文を使用します。この構文では必ず if と fi で囲む必要があります。
◆ 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 ファイルの内容確認
◆ whiletest.sh ファイルの実行結果
$ source whiletest.sh
LinuC Level1
LinuC Level2
LinuC Level3
|
リダイレクション < でテキストファイル test.txt からの入力に切り替えています。done < test.txt
により、test.txtファイルの内容を読み込む処理を実行しています。そのファイル内容はLINE変数に1行
ごとに読み込まれて格納されます。readコマンドで読み込まれるLINE変数が空になるまで「真」と判断
されて、最終行まで読み込んだ後は「偽」と判断されたwhile文が完了します。
|