はじめに
bashの変数は、その参照に値を割り当てることによって作成されます。組み込みの宣言
ステートメントを使用してbashで変数を明示的に宣言する必要はありません。このコマンドは、より高度な変数管理タスクによく使用されます。
このチュートリアルでは、bash describe
を使用して変数とその属性を操作する方法を説明します。 指図。
前提条件
- 端末/コマンドラインへのアクセス。
- Sudoユーザー権限。
Bash宣言構文
bashを使用するための構文describe
コマンドは次のとおりです:
declare [options] [variable-name]="[value]"
Bash宣言オプション
宣言
コマンドは次の一般的なオプションで機能します:
オプション | 説明 |
---|---|
-f | 変数ではなくbash関数を宣言します。 |
-F | 関数の名前と属性を表示します。 |
-g | シェル関数内のすべての変数操作にグローバルスコープを適用します。このオプションは、シェル関数の外部では機能しません。 |
-p | 変数のオプションと属性を表示します。 |
次の表のオプションは、属性を変数に設定するために使用されます。
オプション | 説明 |
---|---|
-a | 変数はインデックス付き配列です。この属性の設定を解除することはできません。 |
-A | 変数は連想配列です。この属性の設定を解除することはできません。 |
-i | 変数の値は整数です。 + i で属性の設定を解除します 。 |
-l </ code> | 変数名は小文字のみで構成されます。 + l で属性の設定を解除します 。 |
-n | 変数は別の変数の名前参照になります。 + n で属性の設定を解除します 。 |
-r | 変数は読み取り専用です。 + r で属性の設定を解除します 。 |
-t | 関数とともに使用する場合、アイテムは DEBUG を継承します およびRETURN 親シェルからのトラップ。 + t で属性の設定を解除します 。 |
-u | 変数名は大文字のみで構成されます。 + u で属性の設定を解除します 。 |
-x | exportコマンドと同様に、変数を子プロセスにエクスポートします。 + x で属性の設定を解除します 。 |
Bashで変数を宣言する方法
次の例は、 testvar
という名前の変数を宣言する方法を示しています。 100
の値を割り当てます 。
declare testvar="100"
正常に実行されると、コマンドは出力を生成しません。 -p
を使用します 変数が正常に作成されたかどうかを確認するオプション。このコマンドは、システムに現在存在するすべての変数を一覧表示するため、grepコマンドで制限します。
declare -p | grep testvar
二重ダッシュ( -
)変数名の前の記号は、変数に引数がないことを示します。
属性を変数に設定するには、以下の構文を使用します。この例では、 -x
を設定します testvar
の属性 変数。
declare -x testvar
変数をもう一度検索し、属性が設定されていることを確認します。
declare -p | grep testvar
属性を削除するには、その前にプラス( +
)を付けます ) サイン。
declare +x testvar
整数
-i
オプションは、変数を整数値のみに制限します。
declare -i testvar
これをテストするには、変数の値を文字列に変更してみてください。
declare testvar="example"
echoコマンドを使用して、変数の値を確認します。
echo $testvar
出力にはゼロの値が表示されます( 0
):
変数の値は、数学演算の結果である場合もあります。
declare testvar="3*3"
上記の例では、 testvar
変数に3 * 3
の値が与えられました 。 echo
で変数値を確認する 結果を表示します。
echo $testvar
数学演算の結果は整数である必要はありません。
declare testvar="10/3"
ただし、変数に -i
がある場合 属性セットの場合、結果は最も近い整数に丸められます。
echo $testvar
-i
のときに、非整数値を変数に宣言しようとしています オプションが設定されていると、エラーが発生します。
declare testvar="1.5"
ケース
-u
を使用します すべての文字を大文字に変換する属性。以下の例では、 testvar
を宣言しています。 変数であり、 example
の値を指定します 。
declare -u testvar="example"
ただし、 -u
属性が設定されました。変数の値を確認すると、 EXAMPLE
の値であることがわかります。 。
echo $testvar
-l </ code>
属性には逆の効果があります。
declare -l testvar="EXAMPLE"
設定すると大文字が小文字に変換されます。
echo $testvar
読み取り専用
-r
を設定します 偶発的な変更から保護したい変数の属性。
declare -r testvar="100"
読み取り専用変数の値を変更しようとすると、エラーが発生します。
declare testvar="50"
配列
Bash変数は複数の値を持つことができます。 1つのbash変数に複数の値を割り当てるには、次のように入力して配列に変換します。
declare -a testvar
変数に変換前の値があった場合、その値は配列の最初の要素になり、インデックス番号は 0
になります。 。変数配列の最初の要素の値を確認するには、次のように入力します。
echo ${testvar[0]}
要素のインデックス番号を指定して、配列のより多くの要素を宣言します。
declare testvar[1]="200"
次のように入力して、配列のすべての要素を一覧表示します。
echo ${testvar[*]}