シェルでは、declare
コマンドを使用して変数の属性を宣言します。このコマンドを使用して、変数タイプ、スコープ、読み取り専用、エクスポートなどの属性を定義できます。
declare
使用する一般的なコマンドをいくつか示します。
1. 変数の型を定義する
declare -i num # 声明一个整数变量
declare -a arr # 声明一个普通数组
declare -A assoc_arr # 声明一个关联数组
変数をdeclareコマンドで宣言する場合
-i
属性を使用して、変数が整数型変数であることを示します-a
属性を使用して、変数が通常の配列型の変数であることを示します-A
属性を使用して、変数が連想配列変数であることを示します
2. 変数のスコープを定義する
declare -g var # 声明一个全局变量
変数は、属性を使用して-g
グローバルに宣言できます。この属性が追加されていない場合、デフォルトでサブシェルに表示される変数は無視されます。シェルで コマンドを使用してexport var
変数をグローバル変数としてエクスポートできますが、 でdeclare -g
宣言された変数は現在のシェル セッションで直接使用できます。
サブシェルは、現在のシェル プロセス (つまり、親プロセス) から派生した新しいシェル プロセスを指します。サブシェルは、シェル スクリプトを実行する場合によく使用され、子プロセスでいくつかのコマンドを実行し、結果を親プロセスに返します。サブシェルで定義された変数はそのプロセス内でのみ有効であり、親プロセスは子プロセス内の変数や結果にアクセスできません。たとえば、シェル スクリプトでパイプを使用する場合、各パイプ文字 (|) の後のすべてのコマンドが新しいサブシェル プロセスで実行されます。このプロセスの出力は、元のシェル プロセスに影響を与えることなく、パイプの入力になります。
シェル セッションとは、継続的に実行されるシェル環境を指します。これには、現在シェルを実行しているすべてのプロセスと変数が含まれます。シェル セッションで定義された変数は、シェル セッション内のすべてのプロセスに表示されるため、セッション中に共有して再利用できます。たとえば、Bash シェルでは、export
シェル セッションでコマンドを使用して変数を環境変数としてエクスポートし、シェル セッション中にすべての子プロセスがその変数にアクセスできるようにすることができます。
Bash-Shell は、 Linux および Unix オペレーティング システムで使用されるシェル プログラムを指します。Bash は、Unix オペレーティング システムの Bourne Shell (sh) の拡張機能であり、sh と下位互換性があります。コマンド履歴、オートコンプリート、ジョブ制御などの多くの拡張機能を提供します。Bash は、条件ステートメント、ループ ステートメント、関数などを含むさまざまなプログラミング構造もサポートしているため、Bash スクリプトは他のプログラミング言語と同じくらい複雑に記述できます。
3. 読み取り専用変数を定義する
declare -r var='hello' # 声明一个只读变量
この属性を使用して-r
、割り当て後に値を変更できない読み取り専用変数を定義します。
4. 変数を環境変数としてエクスポートする
declare -x var='world' # 声明一个导出为环境变量的变量
この属性を使用し-x
て変数を環境変数としてエクスポートし、現在のシェル プロセスおよび子プロセスで使用できるようにします。
つまり、declare
コマンドはシェル スクリプトでさまざまな変数属性を定義するのに役立ち、それによってシェル スクリプトの柔軟性と保守性が向上します。