デジタルこどもBASEのロゴ特定非営利活動法人デジタルこどもBASE 道場トップ
第87回LV4⏱ 15〜30分

条件分岐:if

🎯 きょうのミッション

ifで条件によって動きを変えます。

👉 memo.txt があるかどうかで動きを変える if を書くのが今回のゴールです。

📖 if =「もし〜なら、◯◯する」

条件によって動きを変えたいときに使います。まずは3行に分けた読みやすい書き方から覚えよう。

Terminal3行版
if [ -f memo.txt ]; then
  echo "memo.txt はあるよ"
fi
  • if:「もし〜なら」のスタート
  • [ -f memo.txt ]:「memo.txtというファイルがあるか」のチェック
  • then:「あったらこれをやる」
  • fi:「if の終わり」(ifを逆さに読んだだけ)

📦 1行に詰めた書き方

慣れたら、; で区切って1行で書くこともできます。

Terminal1行版
if [ -f memo.txt ]; then echo OK; fi

どちらも結果は同じ。最初は3行で書いて、慣れてから1行版に挑戦しよう。

🧠 できるようになること

  • if [ -f file ]; then ... fi の形をそらで打てる
  • if の役割を、結果の例から確かめられる
  • 練習用ディレクトリの中で安全に試せる

🧰 用意するもの

  • このページの「🖥 れんしゅうターミナル」(練習用ディレクトリ linux-tanken 入り)
  • キーボードで英数字と記号を入力できること

🖼 ターミナルの見本

このコマンドを実行すると、こんな結果になります(環境によって少し違うことがあります)。

📺 実行例
$ if [ -f memo.txt ]; then echo OK; fi
OK

⌨️ 今日のコマンド

Terminalれんしゅうターミナル
if [ -f memo.txt ]; then echo OK; fi

🚀 やってみよう

  1. cd ~/linux-tanken で練習場所に入ります。
  2. if [ -f memo.txt ]; then echo OK; fi と入力してEnterキーを押します。
  3. 条件が成り立てば OK など then の中身が、成り立たなければ何も表示されません。

💡 探検ポイント

fiはifを逆さに読んだだけ。3行で書けるようになってから1行版に挑戦。

🎮 チャレンジ

  • [ -f memo.txt ] の -f を -d に変えると結果はどうなる?(memo.txtはファイル、-d はディレクトリのチェック)
  • ないファイル名(例:nai.txt)でも試して、何も表示されないことを確かめよう。
  • if [ -d linux-tanken ]; then echo あるよ; fi をホームディレクトリで実行してみよう。

📝 ふりかえり

  • fi って何の略だった?
  • [ -f memo.txt ] の意味を1行で言うと?
  • ifで何を判断できると便利?

❓ うまくいかないとき

  • command not found → コマンド名のスペル確認。Tab補完で打ち間違いを防げる
  • No such file or directory → ls でファイル名・パスを見直す
  • 画面が固まった → Ctrl + C でコマンドを止める
  • 画面が乱れた → clear または Ctrl + L で整理する

👨‍👩‍👧 おうちの人・先生へ

この回はLinux初級の安全な操作範囲です。困ったときの対処として「直前のコマンド」「画面に出たメッセージ」をメモしておくと、次回の質問がスムーズになります。