
同じ処理を何度も書くのは面倒…そんなときに便利なのが「関数」です。Shellスクリプトでも関数を使えば、処理の整理や再利用がカンタンにできます。
Shellの基礎知識
🟡 Shell の基礎知識(入門編)
📌 「動かす楽しさ」を最短で体感!Shellの第一歩をここから。
├─【Shell入門①】VSCode+WSLでShellを始めよう!
├─【Shell入門②】echoで文字を表示してみよう
├─【Shell入門③】変数を使って計算しよう
├─【Shell入門④】条件分岐(if文)で処理を分けよう
├─【Shell入門⑤】ループ処理(for文)を使ってみよう
├─【Shell入門⑥】関数で処理をまとめてみよう
└─【Shell入門⑦】アンケート集計スクリプトを作ってみよう
🟡 Shell の基礎知識(基礎編)
📌 条件分岐やループなど、実務で通用する基本操作を網羅。
🟡 Shell の基礎知識(実践編)
📌 現場レベルの自動化スクリプトを実装しながら学ぶ実戦形式。
関数とは?Shellでの使い方を知ろう
同じ処理を何度も書くのは効率が悪く、ミスの元にもなります。Shellスクリプトでも「関数」を使えば、処理をひとまとめにして再利用できるようになります。
関数の役割と基本的な定義方法
スクリプト内で繰り返し使いたい処理を、あらかじめ「関数」として定義しておくと、見やすく・保守しやすいコードになります。まずは、基本の構文から確認してみましょう。
greet() {
echo "こんにちは!"
}


関数の呼び出し方と実行の流れ
定義した関数は、その名前をスクリプト内で呼び出すだけで実行されます。ただし、定義よりも前に呼び出そうとすると動作しないので注意しましょう。
greet
上のように書くだけで、関数の中の処理が実行されます。


このように関数を活用することで、スクリプトの読みやすさや再利用性が一気に高まります。
実践:関数で処理を再利用してみよう
関数の定義と呼び出し方を理解したら、実際に自分で関数を作って使ってみましょう。ここでは、挨拶を表示する関数を例に、再利用性のあるコードを書いていきます。
あいさつ関数を作ってみよう
まずは、固定のメッセージを出力する簡単な関数を作成してみましょう。
sayHello() {
echo "こんにちは!"
}
sayHello


関数の定義は「準備」で、呼び出しが「実行」という流れを意識すると、関数の動きがぐっと分かりやすくなります。


このコードは、たとえば greet.sh という名前でファイルに保存し、次のように実行できます:
sh greet.sh
※ファイル名は自由に決めてOKですが、処理内容がわかる名前(greet.sh、say_hello.shなど)にしておくと管理しやすくなります。


たとえば3回挨拶したいときも、次のように簡単に書けます:
sayHello
sayHello
sayHello
引数を使って関数をカスタマイズ
関数に引数を渡して、メッセージを変えられるようにしてみましょう。
sayHelloTo() {
echo "こんにちは、$1さん!"
}
sayHelloTo BePro
sayHelloTo ルーキー


$1 は「関数に渡された1つ目の引数」を表します。 2つ目の引数なら $2、3つ目なら $3 というように、渡す順番で自動的に番号がつきます。


関数でつまずかないための注意点
関数を使うときにありがちなつまずきポイントを事前に押さえておくことで、エラーや混乱を避けることができます。ここでは、定義順と戻り値に関する注意点を紹介します。
関数の定義場所と順番に注意
Shellスクリプトは上から下に処理されるため、関数を「定義より前で呼び出す」とエラーになります。必ず、関数を呼び出すより前に定義しておきましょう。
sayHello
sayHello() {
echo "こんにちは!"
}


また、関数の定義は「処理の準備」にあたり、実際の実行は定義のあとに記述する必要があります。
戻り値とexitの違い(軽く補足)
関数から処理を抜けるには return を使いますが、 exit はスクリプト全体を終了させる命令です。
checkValue() {
if [ "$1" -gt 10 ]; then
return 0
else
return 1
fi
}


次のステップにつなげよう!
ここまでで関数の基本的な使い方が理解できました。次のステップとして、他の構文と組み合わせた活用方法にもチャレンジしていきましょう。
関数とループ・条件分岐を組み合わせてみよう
関数は単体でも便利ですが、ループ処理やif文と組み合わせることで実用性が一気に高まります。実務でもこのパターンは多く使われるので、次の記事ではそれを体験してみましょう。


Shellの基礎知識で関数をさらに深掘りしたい方へ
入門記事では扱いきれない関数の応用や戻り値・引数の細かな扱い方、スクリプト設計のコツなどは「Shellの基礎知識」シリーズでさらに詳しく解説しています。関数をもっと深く理解したい方は、以下の関連記事もチェックしてみてください。
▶ 続きはこちら:Shell入門:アンケート集計スクリプトを作ってみよう