
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
fi3回メッセージを表示する
#!/bin/bash
for i in 1 2 3
do
echo "$i 回目の処理"
done5秒ごとに時刻を表示(3回)
#!/bin/bash
count=1
while [ $count -le 3 ]
do
date
sleep 5
count=$((count + 1))
doneまとめ|「考える力」を持ったスクリプトへ
- if:状況に応じて判断する
- for:決まった回数をくり返す
- while:条件が続く間くり返す
これらを使えるようになると、シェルスクリプトは「ただの命令」から
頼れる自動化ツール に変わります。
次は、これらを組み合わせてさらに実用的なスクリプトに挑戦してみましょう。



なるほど…。
if は判断、for は回数、while は条件が続く間なんですね。
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本









