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

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

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

作成日: 更新日:

ITニュース概要

Bashスクリプトのforループは、リストの項目を一つずつ繰り返し処理し、同じコードを実行する。これにより、反復作業を自動化できる。記事では、ファイルから果物リストを読み込み、各果物に対して特定のメッセージを出力するスクリプトを例に、forループの基本的な使い方と構文を解説している。

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

ITニュース解説

Bashスクリプトは、コンピューターに特定の作業を自動で実行させるための命令書のようなものである。システムエンジニアを目指す上で、このような自動化のスキルは非常に重要になる。今回解説するのは、Bashスクリプトの中でも特に頻繁に使われる「forループ」という仕組みだ。forループは、同じような作業を何度も繰り返す場合に、手動で一つずつ実行する手間を省き、効率的に処理を進めるために活用される。

forループの基本的な考え方は、「リストにある項目を一つずつ取り出し、それぞれに対して決まった処理を行う」というものだ。例えば、果物がたくさん入ったバスケットを想像してみよう。バスケットの中にはリンゴ、バナナ、チェリーが入っているとする。forループは、まずリンゴを取り出し、それに対して何か処理をする。次にバナナを取り出し、同じ処理をする。最後にチェリーを取り出し、同様の処理を行う。このように、リストの全ての項目に対して繰り返し処理を行うことを「イテレートする」と表現する。イテレートとは、プロセスを段階的に繰り返すという意味である。これにより、一つ一つの作業を手書きで記述することなく、少ないコードで多くの処理を自動化できるようになるのだ。

実際にforループを使ったスクリプトを作成する手順を見ていこう。まず、ループで処理したい項目のリストを用意する。今回の例では、果物の名前が書かれた「fruits.txt」というテキストファイルを作成する。このファイルには、例えば「apple」「banana」「cherry」「grape」「orange」のように、複数の果物の名前が一行ずつ記述されている。forループは、このファイルの内容を読み込み、各果物の名前を一つずつ取り出して処理を行う。

次に、このリストを使ってforループを実行するスクリプト本体を記述する。スクリプトの最初の行は「#!/bin/bash」から始まる。これは「シバン」と呼ばれ、このスクリプトをどのプログラム(この場合はBashシェル)で実行するかをシステムに教えている。いわば、スクリプトの実行エンジンを指定する宣言のようなものだ。

forループの本体は「for FRUITS in $(cat fruits.txt);」という行で始まる。ここで「for」はforループの開始を意味するキーワードだ。「FRUITS」は、ループの中で現在処理している項目を一時的に格納するための変数名である。この変数は、ループが1回実行されるごとに、リストの次の項目に置き換わる。つまり、最初のループではFRUITSに「apple」が入り、次のループでは「banana」が入るといった具合だ。

そして、「$(cat fruits.txt)」の部分が、forループに渡すリストの作成方法を示している。ここでは「cat」コマンドが使われている。catコマンドは、指定されたファイルの内容を読み込み、標準出力(通常は画面)に表示する役割を持つ。つまり、「cat fruits.txt」と実行すれば、「fruits.txt」の中身である果物の名前がすべて表示される。このcatコマンド全体を丸括弧とドル記号で囲んだ「$(...)」という記法は、「コマンド置換」と呼ばれるものだ。これは、括弧の中のコマンドを実行し、そのコマンドの実行結果を文字列として使用するという意味を持つ。したがって、「$(cat fruits.txt)」は、「fruits.txt」ファイルに記述された全ての果物の名前のリストを生成し、それをforループに渡す役割を担っている。

この行の最後に付いているセミコロン「;」にも意味がある。Bashでは、同じ行に複数のコマンドを記述する場合、その区切りとしてセミコロンを使用する。このforループの行では、「for FRUITS in $(cat fruits.txt)」というforループの定義部分が終わり、次に続く「do」コマンドが始まることをBashに明確に伝えている。慣習的にセミコロンが使われるが、もしdoを次の行に記述するならば、セミコロンは必須ではない。

forループの処理ブロックは「do」で始まり、「done」で終わる。この「do ... done」の間に記述されたコマンドが、リストの各項目に対して繰り返し実行されるコードだ。今回のスクリプトでは、このブロックの中に「echo "I enjoy eating $FRUITS"」という行がある。

echo」コマンドは、指定された文字列をターミナルに表示する役割を持つ。そして、「$FRUITS」の部分に注目してほしい。これは変数「FRUITS」の中身を参照するための記法だ。ループが実行されるたびにFRUITS変数の値が、リストから取り出された個々の果物の名前に置き換わるため、「$FRUITS」の部分もそれに合わせて変化する。例えば、FRUITSが「apple」のときは「I enjoy eating apple」と表示され、FRUITSが「banana」のときは「I enjoy eating banana」と表示されるわけだ。

このスクリプトを実行すると、fruits.txtファイルに書かれている果物の名前それぞれに対して、「I enjoy eating [果物の名前]」というメッセージがターミナルに一行ずつ出力される。この一連の動作を通して、forループがどのようにファイルからデータを読み込み、そのデータを使って繰り返し処理を実行し、結果を出力するのかが理解できるだろう。

まとめると、このスクリプトはfruits.txtというファイルから果物のリストを読み込み、Bashのforループを使って、リスト内の各果物に対して「私は[果物]を食べるのが好きです」というカスタムメッセージを表示する。forループは、このように繰り返し発生する単調な作業を自動化し、効率的なスクリプト作成の強力なツールとなる。システムエンジニアにとって、このforループの概念と使い方をマスターすることは、日々の業務を効率化し、より複雑な自動化タスクに取り組むための基礎となる重要なスキルなのだ。

関連コンテンツ