Bashの変数と配列 - 代入、エクスポート、配列、スコープ

bashの変数代入、環境変数、インデックス付き配列と連想配列、変数スコープ、特殊シェル変数を実践的な例とともに学びます。

Variables

詳細な説明

Bashの変数と配列

変数はスクリプト全体で使用するデータを保存します。Bashは単純な変数、インデックス付き配列、連想配列(bash 4+)をサポートしています。

変数の代入

NAME="Alice"
COUNT=42
TODAY=$(date +%Y-%m-%d)
readonly VERSION="2.0.0"    # 読み取り専用
unset TEMP_VAR              # 変数を削除

環境変数

export DATABASE_URL="postgres://localhost/mydb"
export PATH="$PATH:/usr/local/bin"
NODE_ENV=production node server.js   # 単一コマンド用に設定

特殊変数

$0    # スクリプト名
$1-$9 # 位置引数
$#    # 引数の数
$@    # すべての引数(個別にクォート)
$?    # 最後のコマンドの終了ステータス
$$    # 現在のシェルのPID

インデックス付き配列

FRUITS=("apple" "banana" "cherry" "date")
echo ${FRUITS[0]}      # apple
echo ${FRUITS[@]}      # すべての要素
echo ${#FRUITS[@]}     # 配列の長さ
FRUITS+=("elderberry")  # 追加

連想配列(Bash 4+)

declare -A CONFIG
CONFIG[host]="localhost"
CONFIG[port]="3000"

for key in "${!CONFIG[@]}"; do
  echo "$key = ${CONFIG[$key]}"
done

ユースケース

変数と配列はすべてのbashスクリプトの基本です。設定値の保存、コマンドライン引数の処理、動的コマンドの構築、アイテムのリスト(サーバー、ファイル、ユーザー)の管理、関数間のデータの受け渡しに使用されます。

試してみる — Bash Cheat Sheet

フルツールを開く