変数及び関数のスコープについて教えてください。
【検証環境】
・PowerShellスクリプトで共通利用する関数をまとめた shared.ps1 というスクリプトファイルを作成
・呼び出し元(親スクリプトファイル)となるスクリプトファイル update.ps1 で shared.ps1 をドットソース形式でインクルードする
・shared.ps1 では update.ps1 でスコープを指定せずに定義した変数を含む文字列を利用して処理を行う
検証した動作では、shared.ps1 内の関数から参照するupdate.ps1の変数は
global,local,script,private のすべてのスコープを定義しても参照できました。
これは、呼び出し元(親スクリプトファイル)となるスクリプトファイル update.ps1 で shared.ps1 をドットソース形式でインクルードした場合、
shared.ps1 内からは呼び出し元(親スクリプトファイル)となるスクリプトファイル update.ps1 の変数は
すべて参照可能という判断ができると思うのですが、そのような認識で問題ないでしょうか?
それとも、たまたま参照できただけということになるのでしょうか?
変数、関数のスコープはPowerShellの利用方法(コンソール、スクリプトファイル)で動作が異なるような情報を確認しています。
これらの情報を整理できればと思いますので、ご回答よろしくお願いいたします。