メインコンテンツへスキップ
レッスン 2 / 12推定時間: 30

変数と環境変数の使い方

シェルスクリプトでの変数の定義、使用方法、スコープ、環境変数の活用について学習します

このレッスンの学習目標

  • 変数の定義と参照方法を理解する
  • 変数のスコープと寿命を把握する
  • 環境変数の概念と使い方を習得する
  • 特殊変数の活用方法を学ぶ

変数の基本

シェルスクリプトでは、データを格納するために変数を使用します。変数は値を保存し、後で参照できる名前付きの記憶領域です。

変数の定義と参照

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

変数名の規則

  1. 英数字とアンダースコアのみ使用可能
  2. 数字で始まらない
  3. 大文字小文字を区別する
  4. 予約語は使用不可
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

変数の操作

文字列の連結

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

変数の初期値とデフォルト値

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

環境変数

環境変数は、シェルセッション全体で利用可能な変数です。子プロセスにも引き継がれます。

環境変数の確認と設定

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

ローカル変数 vs 環境変数

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

特殊変数

シェルには事前定義された特殊な変数があります。

位置パラメータ

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

その他の特殊変数

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

変数の展開と置換

パラメータ展開の高度な使い方

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

配列変数

Bashでは配列もサポートされています。

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

readonlyとunset

読み取り専用変数

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

変数の削除

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

実践的な例

設定ファイルの読み込み

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

演習問題

演習1: ユーザー情報スクリプト

ユーザーの情報を環境変数から取得して表示するスクリプトを作成してください。

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

演習2: パスワード生成器

ランダムな文字列を生成する簡単なパスワード生成器を作成してください。

まとめ

このレッスンで学んだこと:

  1. 変数の基本 - 定義、参照、命名規則
  2. 環境変数 - export、スコープ、子プロセスへの継承
  3. 特殊変数 - $0, $1, $@, $#, $?, $$など
  4. 高度な変数操作 - パラメータ展開、配列、readonly
  5. 実践的な使用例 - 設定ファイル、環境変数の活用

次のレッスンでは、条件分岐(if文)について学習します。

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行