シェル変数はどこに保存されますか?

シェル変数はどこに保存されますか?

たとえば、パラメータ拡張:

$ b=1
$ echo $b
1

内部リポジトリはどこにありますかb?確認してみるとリストにないので環境変数ではありませんprintenv。私はUnixを学ぶために独自のシェルを作成しており、変数を保存して検索するためにハッシュテーブルを「シンボル検索テーブル」として使用しています。これは良いアプローチですか、それとも別のものを提案してもよろしいですか?

ベストアンサー1

コマンドを読み込んで実行するためにログインしたときに実行されるシェルは、すべての変数を保持します。 2番目のシェルを実行すると、独自の変数セットが作成されます。このsetコマンドを実行すると、変数のリストを表示できます。このsetコマンドは、新しいプロセスを開始するのではなく、シェルの内部で実行されます。

環境変数は別々のスペースに保持されるか、タグ付けされて(必要に応じてシェルソースコードを読み取る)、シェルが実行しているプログラムに渡されます。

2つのハッシュテーブルを使用するのが合理的であると考えられています。

おすすめ記事