このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】シェル変数の設定や属性変更:declareコマンド
declare コマンドの概要
「declare
」コマンドは、変数の属性を設定したり、変数に値を設定したりするために使用されます。特に、シェル変数のデータ型やアクセス属性を定義する際に便利です。「declare
」コマンドは主に Bash シェルで使用されます。
【構文】declare [オプション] [変数名[=値]]
主なオプションと説明
オプション | 説明 |
---|---|
-p | 変数の属性と値を表示します。指定した変数が存在しない場合、全ての変数を表示します。 |
-x | 変数をエクスポートします(環境変数にします)。このオプションを使用すると、変数はサブシェルや子プロセスでも利用可能になります。 |
-i | 変数を整数型として宣言します。このオプションを使用すると、変数は常に整数として扱われます。 |
-r | 変数を読み取り専用に設定します。このオプションを使用すると、変数の値を変更できなくなります。 |
コマンドの使用例と解説
1.変数の属性と値を表示する(-p
オプション)
以下のコマンドを実行します。
- 「
declare myVar="Hello, World!"
」コマンド - 「
declare -p myVar
」コマンド
このコマンドでは、「myVar
」という変数を定義し、その属性と値を 「declare -p
」を使って表示します。変数の属性と値が表示されます。
# 変数を定義
user01@ubuntu-vm:~$ declare myVar="Hello, World!"
# 変数の属性と値を表示
user01@ubuntu-vm:~$ declare -p myVar
declare -- myVar="Hello, World!"
2.変数をエクスポート(環境変数に)する(-x オプション)
以下のコマンドを実行します。
- 「
declare -x myVar="Hello, Exported World!"
」コマンド - 「
bash -c 'echo $myVar'
」コマンド
このコマンドでは、「myVar
」という変数を「 -x
」オプションでエクスポートしています(環境変数にしています)。これにより、サブシェル(新しく起動した bash プロセス)でも「myVar
」の値が利用可能になります。
# 変数を定義
user01@ubuntu-vm:~$ declare -x myVar="Hello, Exported World!"
# サブシェルを起動して変数の値を確認
user01@ubuntu-vm:~$ bash -c 'echo $myVar'
Hello, Exported World!
3.数値変数として宣言する(-i オプション)
以下のコマンドを実行します。
- 「
declare -i numVar=10
」コマンド - 「
numVar+=5
」コマンド - 「
echo $numVar
」コマンド
「declare -i
」を使用して数値変数を宣言しています。このオプションを使用すると、その変数は常に整数として扱われ、計算も適切に行われます。上記の例では、「numVar
」に「5」を追加し、その結果を表示しています。
# 数値変数として定義
user01@ubuntu-vm:~$ declare -i numVar=10
# 数値変数に対して計算を実行
user01@ubuntu-vm:~$ numVar+=5
user01@ubuntu-vm:~$ echo $numVar
15
4.読み取り専用変数として宣言する(-r オプション)
以下のコマンドを実行します。
- 「
declare -r readonlyVar="This is read-only"
」コマンド - 「
readonlyVar="Attempt to change"
」コマンド
「declare -r
」 を使用して変数を読み取り専用に設定しています。この変数の値を変更しようとするとエラーが発生します。
# 読み取り専用変数として定義
user01@ubuntu-vm:~$ declare -r readonlyVar="This is read-only"
# 変数の変更を試みる(エラーになります)
user01@ubuntu-vm:~$ readonlyVar="Attempt to change"
bash: readonlyVar: 読み取り専用の変数です
まとめ
「declare
」コマンドは、シェル変数の属性を柔軟に設定・変更するための強力なツールです。特に、変数のエクスポートや読み取り専用の設定、数値変数の宣言など、多くのシナリオで役立ちます。上記の例と表を参考にして、効果的に「declare
」コマンドを活用してください。