Bashスクリプト: 変数と環境変数の基本的な使い方と設定方法ガイド

Bashスクリプトは、シェル環境でのタスクを自動化するための強力なツールです。その中でも変数と環境変数は、スクリプト内でデータを管理し、異なるプログラムやプロセス間で情報を共有する際に非常に重要です。この記事では、Bashスクリプトにおける変数と環境変数の基本的な使い方や設定方法について詳しく解説します。

変数の基本

Bashスクリプト内で変数を使用することで、値を一時的に保存し、再利用することができます。変数の設定は非常にシンプルで、次のようにして行います。

variable_name=value

ここでvariable_nameは任意の名前で、valueは変数に格納する値です。注意すべき点は、等号(=)の前後にスペースを入れないことです。また、変数名は英数字およびアンダースコアを使用できます。

変数の使用

変数の値を使用する場合は、変数名の前にドル記号($)を付けます。

echo $variable_name

このコマンドは、変数variable_nameの値を出力します。

環境変数の基本

環境変数は、システム全体で共通に使われる変数で、ユーザーセッションやプロセス間で情報を共有する際に利用されます。一般的な環境変数としては、PATHHOMEUSERなどがあります。

環境変数の設定

環境変数を設定するには、exportコマンドを使用します。

export ENV_VARIABLE=value

こうすることで、ENV_VARIABLEが設定され、その後に呼び出されるスクリプトやプロセスでも利用可能になります。

環境変数の利用

環境変数も通常の変数と同様に、ドル記号($)を前につけてアクセスします。

echo $ENV_VARIABLE

このコマンドは環境変数ENV_VARIABLEの値を出力します。

変数と環境変数の違い

変数と環境変数の最も大きな違いは、その有効範囲にあります。通常の変数はそれが宣言されたスクリプト内でしか利用できませんが、環境変数はシステム全体で利用できます。この違いを理解することが重要です。

スコープについて

Bashスクリプトにおけるスコープは、変数の有効範囲を指します。特定のスクリプト内だけで有効にする場合はローカル変数として設定します。これにはlocalを使います。

function example_function {
  local local_var="I am local"
}

ここでlocal_varexample_functionの中でのみ使える変数です。

コマンドラインから変数を渡す

Bashスクリプトに外部から変数を渡す方法もあります。スクリプト実行時に引数として変数を設定し、それを受け取るには位置パラメータを使用します。

#!/bin/bash
echo "First argument is: $1"

このスクリプトをscript.shとして保存し、実行する際に./script.sh valueとすると、出力は「First argument is: value」となります。

環境変数の永続化

一時的にしか使わない環境変数はexportで十分ですが、シェルの再起動後も永続化させたい変数は、.bashrc.bash_profileに設定する方法があります。ファイルに以下のように記述して、ログインシェルが起動するたびに設定が適用されるようにします。

export PERSISTENT_VAR=value

このファイルを編集した後に適用する場合には、source ~/.bashrcを実行して変更を反映させます。

環境変数の削除

設定した環境変数を削除したい場合は、unsetコマンドを使用します。これにより、そのセッション内で変数が無効になります。

unset ENV_VARIABLE

まとめ

Bashスクリプトでの変数と環境変数の使い方をマスターすることは、スクリプトを書く上で重要なスキルです。それぞれの違いを理解し、適切な場面で使い分けることで、より柔軟でパワフルなスクリプトを書くことが可能になります。システム一貫で定義が必要な情報に環境変数を使用し、特定のスクリプト内で完結する情報には変数を利用しましょう。これらをマスターすることで、Bashスクリプトの効率と効果が大幅に向上します。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする
Bashの基本

コメント

タイトルとURLをコピーしました