シェルスクリプト · 1 min read · Nov 14, 2025

シェルスクリプト パート I: bash スクリプトの始め方

こんにちは。これは一連のLinuxチュートリアルの第一部です。このチュートリアルを書くにあたり、あなたがLinuxスクリプトの作成において全くの初心者であり、学ぶ意欲があることを前提としています。シリーズを通してレベルは上がっていくので、より高度なユーザーにとっても新しいことがあると確信しています。それでは始めましょう。

はじめに

私たちのオペレーティングシステムのほとんどは、異なるユーザーインターフェース(UI)をサポートしています。グラフィカルユーザーインターフェース(GUI)は、ユーザーがアイコンをクリックしてアプリケーションを実行できるユーザーフレンドリーなデスクトップインターフェースです。もう一つのインターフェースはコマンドラインインターフェース(CLI)で、これは純粋にテキストベースで、ユーザーからのコマンドを受け付けます。シェル、すなわちコマンドインタープリタはCLIを通じてコマンドを読み取り、プログラムを呼び出します。現在のほとんどのオペレーティングシステムは、Linuxディストリビューションを含め、両方のインターフェースを提供しています。

シェルを使用する際、ユーザーはターミナルで一連のコマンドを入力する必要があります。ユーザーがそのタスクを一度だけ行う場合は問題ありません。しかし、タスクが複雑で何度も繰り返す必要がある場合、ユーザーにとっては少し面倒になることがあります。幸いなことに、シェルのタスクを自動化する方法があります。これはシェルスクリプトを書くことによって行うことができます。シェルスクリプトは、Linuxシェルによってサポートされる一連のコマンドで構成されたファイルの一種です。

シェルスクリプトを作成する理由は?

シェルスクリプトは、Linux OSでのタスクを自動化するための非常に便利なツールです。また、ユーティリティを組み合わせて新しいコマンドを作成するためにも使用できます。長く繰り返しのコマンドのシーケンスを1つのシンプルなコマンドにまとめることができます。すべてのスクリプトはコンパイルする必要なく実行できるため、ユーザーはシームレスにコマンドをプロトタイピングする方法を持つことができます。

Linux環境が初めてですが、シェルスクリプトを作成することはできますか?

もちろんです!シェルスクリプトを作成するために、Linuxの複雑な知識は必要ありません。Linux CLIの一般的なコマンドの基本的な知識とテキストエディタがあれば大丈夫です。全くの初心者でLinuxコマンドラインの背景知識がない場合、このチュートリアルが役立つかもしれません。

最初のシェルスクリプトを作成する

bash(Bourne-Again Shell)は、ほとんどのLinuxディストリビューションとOS Xのデフォルトシェルです。これは、sh(Bourne Shell)を置き換えることを目的としたオープンソースのGNUプロジェクトです。これはブライアン・フォックスによって開発され、1989年にリリースされました。

各Linuxスクリプトは、次の行で始まることを常に覚えておいてください:

#!/bin/bash

すべてのLinuxスクリプトはシェバン(#!)行で始まります。バン行は、スクリプトを実行するために使用されるコマンドインタープリタのフルパス/bin/bashを指定します。

こんにちは世界!

すべてのプログラミング言語は、Hello World!の表示から始まります。この伝統を終わらせず、Linuxスクリプトでこのダミー出力の独自のバージョンを作成します。

スクリプトの作成を開始するには、以下の手順に従ってください:

ステップ 1: テキストエディタを開きます。この例ではgeditを使用します。ターミナルを使用してgeditを開くには、キーボードでCTRL + ALT + Tを押し、geditと入力します。これでスクリプトの作成を開始できます。

ステップ 2: テキストエディタに次のコマンドを入力します:

#!/bin/bash   
 echo "Hello World"

ステップ 3: ドキュメントをhello.shというファイル名で保存します。すべてのスクリプトには.shファイル拡張子があります。

ステップ 4: Linuxディストリビューションによって強制されるセキュリティ上の理由から、ファイルとスクリプトはデフォルトでは実行可能ではありません。しかし、Linux CLIのchmodコマンドを使用して、スクリプトの実行可能性を変更できます。geditアプリケーションを閉じて、ターミナルを開きます。次のコマンドを入力します:

chmod +x hello.sh

上の行はhello.shファイルに実行権限を設定します。この手順は、スクリプトを初めて実行する前に一度だけ行う必要があります。

ステップ 5: スクリプトを実行するには、ターミナルに次のコマンドを入力します:

./hello.sh

もう一つの例を見てみましょう。今回は、whoamiとdateコマンドを使用して、システム情報を表示することをhelloスクリプトに組み込みます。

hello.shをテキストエディタで開き、次のようにスクリプトを編集します:

#!/bin/bash  
 echo "Hello $(whoami) !"  
 echo "The date today is $(date)"

スクリプトで行った変更を保存し、スクリプトを実行します(前の例のステップ5):

./hello.sh

スクリプトの出力は次のようになります:

前の例では、whoamiとdateコマンドがechoコマンド内で使用されました。これは、コマンドラインで利用可能なすべてのユーティリティとコマンドがシェルスクリプトでも使用できることを示しています。

printfを使用して出力を生成する

これまで、前の例でechoを使用して文字列やコマンドからのデータを印刷してきました。Echoはテキストの行を表示するために使用されます。データを表示するために使用できる別のコマンドはprintfコマンドです。printfは、Cのprintf関数のようにデータを制御して印刷します。

以下は、一般的なprintf制御の概要です:

制御使用法
\”ダブルクオート
\バックスラッシュ
\bバックスペース
\cさらなる出力を生成しない
\eエスケープ
\n改行
\rキャリッジリターン
\t水平タブ
\v垂直タブ

例3: 前のhello.shを開き、すべてのechoをprintfに変更し、スクリプトを再度実行します。出力にどのような変化があるかに注意してください。

#!/bin/bash  
 printf "Hello $(whoami) !"  
 printf "The date today is $(date)"

すべての行が互いに接続されているのは、printfコマンドで制御を使用しなかったためです。したがって、LinuxのprintfコマンドはCのprintf関数と同じ特性を持っています。

スクリプトの出力をフォーマットするために、上記の表の制御のうち2つを使用します。制御は、printfコマンドの引用符内に\で示される必要があります。たとえば、hello.shの前の内容を次のように編集します:

#!/bin/bash  
 printf "Hello \t $(whoami) !\n"  
 printf "The date today is $(date)\n"

スクリプトは次のように出力します:

結論

このチュートリアルでは、シェルスクリプトの基本を学び、シェルスクリプトを作成して実行することができました。チュートリアルの第二部では、変数の宣言、入力の受け取り、シェルコマンドを使用した算術演算の実行方法を紹介します。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。