連載
» 2019年05月30日 05時00分 公開

Linux基本コマンドTips(308):【 declare 】コマンド――変数を宣言する、変数などの内容を表示する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、変数を宣言したり、定義済み変数と関数の定義内容を表示したりする「declare」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、変数を宣言したり、定義済み変数と関数の定義内容を表示したりする「declare」コマンドです。

declareコマンドとは?

 「declare」は変数を宣言するコマンドです。さらに、定義済み変数や関数について、定義内容を表示できます。

 なお、変数や関数を削除するには「unset」コマンド(連載第307回)を使います。



declareコマンドの書式

declare [オプション] [名前]

declare [オプション] [名前=値]

※[ ]は省略可能な引数を示しています。





declareの主なオプション(属性の定義、※1)

短いオプション 意味
-a 名前 配列を定義する(※2)
-A 名前 連想配列を定義する(※3)
-i 名前 変数を数値(integer)用に定義する
-l 名前 変数の値を常に小文字にする
-n 名前 名前参照として定義する(第307回参照)
-r 名前 定数(readonly)として定義する(値をセットしたい場合、定義時に「declare -r 名前=値」のように記述する)
-t 名前 トレース可能にする(関数に用いる)
-u 名前 変数の値を常に大文字にする
-x 名前 環境変数として定義する(定義と同時にexportされる)

※1 属性定義用のオプションは「+」記号にすることで属性を取り除く(例:declare +x 変数名)。ただし「-r」(readonly)は変更できない。
※2 “応用力”をつけるためのLinux再入門の第36回を参照。
※3 “応用力”をつけるためのLinux再入門の第38回を参照。



declareの主なオプション(その他)

短いオプション 意味
-f 現在定義されている関数を全て表示する
-f 関数名 指定した関数を表示する
-F 現在定義されている関数名を全て表示する
-p 現在定義されている変数を全て表示する
-p 変数名 指定した変数の定義を表示する
-g グローバル変数を定義する(関数の中で使用、それ以外の場所では-gオプションは無効)


変数を定義する

 「declare 変数名」で変数を定義します。定義する際に値も同時にセットしたい場合は「declare 変数名=値」のようにします。

 declareコマンドでは、オプションを使って変数にさまざまな性質を付け加えることができます。これを「属性」と呼びます。例えば「declare -x 変数名」のようにすると、指定した変数は環境変数になります(※4)。

※4 シェル以外からも参照できる変数を「環境変数」と呼ぶ。「export 変数名」でも設定可能(第174回)。



 bashでは、定義しなくても通常の変数を使用できます。従って、declareを使用するのは、シェルスクリプトなどで変数の定義を明示的に進めたい場合や、特殊な属性を加えたい場合が多いでしょう。

 画面1では、値を常に大文字にする「-u」オプション付きで変数を定義しています。

コマンド実行例

declare 変数名

(変数を定義する)

declare 変数名=値

(変数を定義する際に、値もセットする)


画面1 画面1 変数を定義したところ 「-u」オプションを使って属性を指定している


変数の属性を確認する

 「declare -p 変数名」で、指定した変数の定義内容を表示します(画面2)。変数名を指定しなかった場合、現在定義されている全ての変数を表示します。

コマンド実行例

declare -p 変数名

(変数の定義内容を表示する)

declare -p

(現在定義されている変数の名前と定義内容を一覧表示する)(画面2


画面2 画面2 変数の定義内容を表示したとところ

 特に属性が設定されていない場合「declare -- 名前=値」のように表示します(画面3)。

画面3 画面3 属性がない変数の定義内容を表示したところ


関数の定義と内容を確認する

 「declare -F」で現在定義されている関数の名前を一覧表示します(画面4)。「declare -f 関数名」では、指定した関数の内容を確認できます。

 表示行数が多いため、画面4ではheadコマンド(第3回)を使って冒頭部分だけを表示しています。

コマンド実行例

declare -F

(現在定義されている関数の名前を一覧表示する)

declare -f 関数名

(関数の内容を表示する)

declare -f

(現在定義されている関数の名前と内容を一覧表示する)


画面4 画面4 定義されている関数の名前を一覧表示したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

元々はDOSユーザーで「DOS版UNIX-like tools」を愛用。ソフトハウスに勤務し生産管理のパッケージソフトウェアの開発およびサポート業務を担当、その後ライターになる。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。地方自治体の在宅就業支援事業にてMicrosoft Officeの教材作成およびeラーニング指導を担当。会社などの"PCヘルパー"やピンポイント研修なども行っている。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。