条件分岐とループの基本|シェルスクリプト入門|UNIX Cafe

当サイトでは、コンテンツの一部に広告を掲載しています。
条件分岐とループの基本|シェルスクリプト入門|UNIX Cafe

UNIX Cafe | 第11回

目次

はじめに|スクリプトは「考えて動く」ようになる

シェルスクリプトは、上から順番にコマンドを実行するだけのものではありません。
条件分岐 と ループ を使うことで、

  • 状況に応じて処理を変える
  • 同じ作業を自動でくり返す

といった、実用的な動きができるようになります。

この記事では、if / for / while の3つを、初心者向けにやさしく整理して紹介します。

ミナちゃん

ユニ先生、スクリプトって「もし〜なら」とか
自分で判断できるようになるんですか?

ユニ先生

できるよ。if や for、while を使うと、
スクリプトは“考えて動く”ようになるんだ。

if文|「もし〜なら」をスクリプトに教える

if文は、条件によって処理を分けたいときに使います。

基本の形

if [ 条件 ]; then
    処理
else
    別の処理
fi

「条件が真なら then の中を実行、そうでなければ else を実行する」という仕組みです。

例:ログファイルがあるか調べる

#!/bin/bash
if [ -f cafe.log ]; then
    echo "ログが見つかりました!"
else
    echo "ログはまだありません。"
fi

-f:通常のファイルが存在するかを確認

状況に応じて表示内容が変わります

このように if文を使うと、「ある/ない」を判断するスクリプト が作れます。

for文|決まった回数をくり返す

for文は、同じ処理を 決まった回数 行いたいときに使います。

基本の形

for item in 1 2 3
do
    echo "$item 回目"
done

指定した値を、順番に1つずつ処理します。

例:ファイルを順番に処理する

#!/bin/bash
for file in *.txt
do
    echo "$file を読み込みます..."
done
  • *.txt に一致するファイルを自動で処理
  • 複数ファイル作業の自動化にとても便利です

while文|条件を満たす間くり返す

while文は、「終わりが条件で決まる処理」 に向いています。

例:3回くり返すカウント処理

#!/bin/bash
count=1
while [ $count -le 3 ]
do
    echo "$count 回目の処理です"
    count=$((count + 1))
done
  • 条件が真の間、処理を続ける
  • 条件を間違えると無限ループになるので注意

よくある使い分け

処理内容使う構文
条件で分けたいif
回数が決まっているfor
条件次第で続けたいwhile

この3つを覚えるだけで、スクリプトの表現力は大きく広がります。

Try it!|すぐ試せる練習例

ログがなければ作る

#!/bin/bash
if [ ! -f cafe.log ]; then
    echo "新しいログを作ります!"
    touch cafe.log
fi

3回メッセージを表示する

#!/bin/bash
for i in 1 2 3
do
    echo "$i 回目の処理"
done

5秒ごとに時刻を表示(3回)

#!/bin/bash
count=1
while [ $count -le 3 ]
do
    date
    sleep 5
    count=$((count + 1))
done

まとめ|「考える力」を持ったスクリプトへ

  • if:状況に応じて判断する
  • for:決まった回数をくり返す
  • while:条件が続く間くり返す

これらを使えるようになると、シェルスクリプトは「ただの命令」から
頼れる自動化ツール に変わります。

次は、これらを組み合わせてさらに実用的なスクリプトに挑戦してみましょう。

ミナちゃん

なるほど…。
if は判断、for は回数、while は条件が続く間なんですね。

さらに学びたいあなたへ

📘 用途ごとに選ぶ Linux のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次