Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Learn Bash Scripting With Me 🚀 - Day 4

2025年09月14日に「Dev.to」が公開したITニュース「Learn Bash Scripting With Me 🚀 - Day 4」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Bashスクリプトでは、条件によって処理を変える「if文」と「if-else文」を学ぶ。条件は`[`と`]`で囲み、前後にスペースが必要だ。条件が真なら`then`、偽なら`else`の処理を実行し、必ず`fi`で閉じる。これにより、スクリプトが状況に応じて判断し、柔軟に動作する。

出典: Learn Bash Scripting With Me 🚀 - Day 4 | Dev.to公開日:

ITニュース解説

システムエンジニアを目指す上で、プログラムが状況に応じて異なる判断を下す「条件分岐」の仕組みを理解することは非常に重要である。これは、私たちが日常生活で「もし雨が降ったら傘を持っていく、そうでなければ持っていかない」といった判断をするのと似ている。Bashスクリプトでも、この「もし〜ならば」という判断をプログラムに行わせるための機能が「条件文」である。条件文を使うことで、ある条件が真(正しい)の場合にだけ特定のコマンドを実行したり、条件が偽(間違っている)の場合には別のコマンドを実行したりといった、柔軟なスクリプトを作成できるようになる。

まずは基本的なif文から見ていこう。Bashスクリプトにおいて、if文は特定の条件が真の場合にのみ、指定されたコマンドを実行するためのものだ。その基本的な書き方は、if [ 条件 ]; then コマンド; fiとなる。

この構造の中で特に重要なのが、条件を記述する部分だ。条件は必ず角括弧[ ]で囲む必要がある。例えば、変数NAMEの値が"Babs"と等しいかどうかをチェックする条件は、[ "$NAME" = "Babs" ]と記述する。ここで見落としがちな非常に重要なルールが二つある。一つ目は、角括弧[ ]の「内側」に、そして条件演算子(この場合は=)の「両側」に、必ずスペースを入れることだ。つまり、[のすぐ後と、]のすぐ前にはスペースが必要であり、"$NAME"=の間、そして="Babs"の間にもスペースが必要となる。もしこれらのスペースが抜けてしまうと、Bashは条件文として正しく認識できず、例えば変数への代入だと誤解してしまうなど、意図しない動作を引き起こす可能性がある。これは初心者にとって特に間違いやすいポイントなので、習慣として意識して記述することが大切だ。

二つ目の重要な要素は、条件を記述した角括弧]の直後にセミコロン;を置くことだ。このセミコロンは、条件文という一つの「コマンド」が終了し、次に実行するthenという別の「コマンド」が始まることをBashに明確に伝える役割を持つ。これにより、Bashはそれぞれの処理の区切りを正しく理解し、スムーズにスクリプトを実行できる。

thenというキーワードは、その後に続くコマンドが「もし条件が真であった場合に実行する内容」であることを示す。条件が真と判定された場合、thenの後に記述されたコマンドが実行される。上記の例で言えば、echo "welcome boss"が実行され、「welcome boss」というメッセージが表示されることになる。

そして、すべてのif文は必ずfiというキーワードで閉じなければならない。fiは、if文の開始から終了までのブロックを明示的に区切る役割を果たす。これがないと、Bashはif文の終わりがどこか分からず、スクリプトはエラーとなってしまう。つまり、iffiは常にセットで使われるということを覚えておこう。

次に、条件が真の場合だけでなく、偽(間違っている)の場合にも異なる処理を行いたいときに便利なif-else文について説明する。これは「もし〜ならばAを実行し、そうでなければBを実行する」という、より柔軟な判断をスクリプトに持たせる機能だ。

if-else文の基本的な書き方は、if [ 条件 ]; then コマンドA; else コマンドB; fiとなる。

この構造もif文と似ているが、elseという新しいキーワードが追加されている点が異なる。if文の部分はこれまで説明した通りで、条件が真の場合にthenの後に続く「コマンドA」が実行される。しかし、条件が偽だった場合、今度はelseの後に続く「コマンドB」が実行されることになる。これにより、どちらの状況でもスクリプトが適切な処理を実行できるようになる。

具体的な例を考えてみよう。ユーザーに名前を入力してもらい、その名前が"Babs"であるかどうかで異なるメッセージを表示するスクリプトだ。 まず、echoコマンドを使って「ユーザー名を入力してください」という指示を表示する。echoコマンドは、その後に続くテキストを画面に出力する役割を持つ。次に、read NAMEコマンドを使ってユーザーの入力を受け取り、それをNAMEという変数に保存する。readコマンドはユーザーからの入力を受け付けるためのものだ。

そして、if [ "$NAME" = "Babs" ]; then echo "welcome back boss"; else echo "who are you"; fiという条件文が続く。 このスクリプトでは、入力されたNAMEが"Babs"と等しいかどうかがチェックされる。もし"Babs"と等しければ、thenの後のecho "welcome back boss"が実行され、「welcome back boss」と表示される。もし"Babs"以外が入力された場合は、elseの後のecho "who are you"が実行され、「who are you」と表示されるわけだ。 最後に、このif-else文もやはりfiで閉じられる。

このように、Bashスクリプトにおける条件文は、プログラムに判断能力を与えるための基本的ながら非常に強力なツールである。角括弧[ ]で条件を囲むこと、その際の内外のスペースを忘れないこと、条件とthenの区切りにセミコロン;を使うこと、そして必ずfiで閉じることを覚えれば、状況に応じて多様な処理を行うスクリプトを作成できるようになる。これらの基礎をしっかりと理解することは、より複雑なロジックを組む上での土台となるだろう。

関連コンテンツ