Bashのdeclareコマンドで変数を効率的に扱う方法【オプション別解説】

declare は、Bash の組み込みコマンドで、変数の属性を設定したり、変数の情報を表示したりするために使います。特に、変数の型や範囲、初期値を管理するのに便利です。

ここでは、declare コマンドの使い方と、主要なオプション引数についてサンプルコードを交えて説明します。

基本的な使い方

declare コマンドは、変数を宣言するときに使います。例えば、単に変数を宣言するだけなら次のように書きます:

1declare var=10
2echo $var   # 出力: 10

このコードでは、var という変数を宣言し、その値を 10 に設定しています。


主要なオプション引数

declare にはいくつかのオプションがあり、変数の型や特性を指定できます。以下では、それぞれのオプションをサンプルコードとともに説明します。

-x (環境変数として宣言)

変数を「エクスポート」して、子プロセスにもその変数を引き継がせるためには、-x オプションを使用します。

1declare -x MY_VAR="Hello"
2echo $MY_VAR  # 出力: Hello
3
4# 子プロセスで変数が引き継がれていることを確認
5bash -c 'echo $MY_VAR'  # 出力: Hello

このように、declare -x を使うと、その変数はエクスポートされ、子プロセスに引き継がれます。

-r (読み取り専用)

変数を読み取り専用に設定するには、-r オプションを使用します。このオプションを使うと、その変数の値は変更できなくなります。

1declare -r READ_ONLY="constant_value"
2echo $READ_ONLY  # 出力: constant_value
3
4# 変数の値を変更しようとするとエラー
5READ_ONLY="new_value"  # エラー: bash: READ_ONLY: readonly variable

-i (整数型)

-i オプションを使うと、変数を整数型として宣言できます。これにより、その変数には数値演算が適用されます。

1declare -i NUM=10
2NUM=NUM+5
3echo $NUM  # 出力: 15

整数型の変数は、数値演算が自動的に行われます。

-a (配列)

-a オプションを使うと、変数を配列として宣言できます。

1declare -a arr
2arr[0]="apple"
3arr[1]="banana"
4arr[2]="cherry"
5
6echo ${arr[1]}  # 出力: banana

配列として宣言した変数には、インデックスを指定して値を格納できます。

-A (連想配列)

-A オプションを使うと、連想配列(キーと値のペア)として変数を宣言できます。

1declare -A assoc_arr
2assoc_arr["name"]="Alice"
3assoc_arr["age"]=30
4
5echo ${assoc_arr["name"]}  # 出力: Alice
6echo ${assoc_arr["age"]}   # 出力: 30

連想配列では、任意のキーを使って値にアクセスできます。

-l (小文字に変換)

-l オプションを使うと、変数に格納された値を自動的に小文字に変換します。

1declare -l lower_case="HELLO"
2echo $lower_case  # 出力: hello

-u (大文字に変換)

-u オプションを使うと、変数に格納された値を自動的に大文字に変換します。

1declare -u upper_case="hello"
2echo $upper_case  # 出力: HELLO

-p (変数の情報を表示)

-p オプションを使うと、変数の情報を表示できます。これは、変数の宣言方法や現在の値を確認したいときに便利です。

1declare -i NUM=100
2declare -r READ_ONLY="constant"
3
4declare -p NUM      # 出力: declare -i NUM="100"
5declare -p READ_ONLY  # 出力: declare -r READ_ONLY="constant"

オプション引数の組み合わせ

複数のオプションを組み合わせて使用することも可能です。例えば、-r-x を組み合わせて、読み取り専用でエクスポートすることができます。

1declare -rx CONSTANT_VAR="value"
2echo $CONSTANT_VAR  # 出力: value
3
4# 値を変更しようとするとエラー
5CONSTANT_VAR="new_value"  # エラー: bash: CONSTANT_VAR: readonly variable

まとめ

declare は、変数の型や属性を設定するための強力なツールで、Bash スクリプトにおいて変数の管理をより効率的に行うために非常に役立ちます。主なオプションは次の通りです:

  • -x : エクスポート
  • -r : 読み取り専用
  • -i : 整数型
  • -a : 配列
  • -A : 連想配列
  • -l : 小文字に変換
  • -u : 大文字に変換
  • -p : 変数情報表示

これらのオプションを組み合わせて、複雑な変数の管理を行うことができます。

関連ページ