用語集:変数・展開・クォート

実務で頻出する「変数・展開・クォート」関連の用語を、一言定義+最小実例でサッと確認。
シェルスクリプトの基礎として重要な「変数の扱い方」「展開ルール」「クォートの違い」を整理します。

このページで達成できること

  • シェル変数と環境変数の違いを理解
  • 各種展開(パラメータ展開・コマンド置換・算術展開)の使い分けを習得
  • クォートの種類と効果を理解し、意図せぬ展開を防ぐ
  • スクリプトの安全性・可読性を高める基本を身につける

すぐ引けるミニ索引

用語一言で代表コマンド/例
シェル変数シェル内でのみ有効な変数VAR=abc
環境変数子プロセスにも継承される変数export VAR=abc
パラメータ展開変数の値を呼び出す仕組みecho $VAR
コマンド置換コマンドの出力を変数に代入VAR=$(date)
算術展開式を評価して数値に置換$((1+2))
クォート(’ “)展開を制御する仕組み'abc', "abc$VAR"
バックスラッシュ特殊文字をエスケープecho \"
Here document複数行入力を変数展開付きで渡すcat <<EOF ... EOF

用語解説(繰り返しブロック)

シェル変数

とは:シェル内のみで有効な変数。環境には渡らない。
最小実例

VAR=hello
echo $VAR
bash -c 'echo $VAR'   # 何も表示されない

関連:環境変数 / export
落とし穴:スクリプト内で export を忘れると子プロセスに伝わらない。

環境変数

とは:シェルから子プロセスに継承される変数。
最小実例

export VAR=world
bash -c 'echo $VAR'   # world

関連:シェル変数 / 初期化ファイル
落とし穴:シェルを閉じると消える → .bashrc などで永続化。

パラメータ展開

とは:変数の値を参照したり加工する仕組み。
最小実例

NAME="Alice"
echo "Hello $NAME"
echo "${NAME:0:3}"    # 部分文字列 Ali

関連${var:-default} / ${#var}
落とし穴:中括弧 {} を忘れると意図しない展開になることがある。

コマンド置換

とは:コマンドの出力結果を展開して使う仕組み。
最小実例

DATE=$(date +%F)
echo $DATE

関連:バッククォート `cmd` 形式 / $() 推奨
落とし穴:改行は空白に畳まれる → mapfile 等を検討。

算術展開

とは:数値計算を実行して結果を展開。
最小実例

echo $((1+2*3))   # 7

関連let / expr
落とし穴:数値でなく文字列を渡すとエラーなく0になることがある。

クォート(quoting)

とは:文字列の展開や解釈を制御する記法。
最小実例

echo '* is literal'     # 展開されない
echo "* expands $HOME"  # 展開される

関連:シングルクォート / ダブルクォート / バックスラッシュ
落とし穴:正規表現やJSONを渡すときはシングルクォートが安全。

バックスラッシュ(\)

とは:直後の1文字をエスケープして特別な意味を無効化。
最小実例

echo \"Hello\"

関連:クォート / 特殊文字
落とし穴:多用すると可読性が落ちる → クォートを優先。

Here document

とは:複数行文字列を標準入力として渡す構文。変数展開も可能。
最小実例

cat <<EOF
User: $USER
Date: $(date)
EOF

関連:リダイレクト / ヒアストリング
落とし穴:クォート付き <<'EOF' にすると変数展開されない。

運用の現場Tips

  • クォートの使い分け
    • 一重 ' ' → 完全リテラル
    • 二重 " " → 変数展開あり
    • バックスラッシュ \ → 最小限エスケープ
  • スクリプトの堅牢化:引数展開は必ず "${var}" のようにクォートする
  • デバッグset -x で展開後の実行内容を確認可能
  • 多段展開の罠:コマンド置換や算術展開はクォート有無で挙動が変わる

関連リンク(学習ハブ内)

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

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

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

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

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

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

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

Bash玄をフォローする