こんにちは、みんな、
Linuxで環境変数(たとえば、$ env:NameまたはGet-ChildItem env:からアクセス)を変更できれば素晴らしいと思います。
たとえば、 / etcに新しい構成ファイルの値を設定するには?
Windowsでは、たとえばPSModulePathを変更して、カスタムパスを追加できます。 Linuxでの唯一のオプションは、すべてのユーザーのプロファイルps1ファイルを作成することです。
ありがとうございました。
環境変数を_永続的に_定義するための_プロファイルに依存しない_方法を導入するPowerShellを探しているという事実を反映するために、問題のタイトルを変更することを提案できますか?
いくつかの考え:
環境変数は、定義上_shell / application-agnostic_であり、どのシェル/アプリケーションがそれらを作成したかに関係なく、_all_子孫プロセスによって認識されます。
PowerShellは_2_環境変数のみを「リッスン」し、 $env:PSModulePath
はそれらの1つです。
私が理解していることから、Linux環境(それらすべて?)には、環境変数を定義するためのシステム全体のシェルに依存しないメカニズムとして、ファイル/etc/environment
すでにあります。
とはいえ、環境変数のセットが本当に_PowerShell_によってのみ使用される場合、システム全体の_PowerShell_プロファイル- $profile.AllUsersAllHosts
-は間違いなくそれらを定義するのに適切な場所です。
/etc/profile
、これはデフォルトのシェルが処理することが期待されています。これは(a)GUIアプリケーションでは有効ではなく、(b)この期待を尊重するためにデフォルトのシェルが必要であり、(c) POSIXシェル構文を理解するためのデフォルトシェル(PowerShellがデフォルトシェルとして定義されている場合、 pwsh -l
開始すると、[_ Update _: /etc/profile
および~/.profile
は尊重されなくなります) pwsh -l
またはPowerShellをデフォルトのシェルとして使用します])。Ubuntuマシンで次のような環境変数を設定してみました。
これで/ etc / environmentファイルが編集され、システム全体の環境変数が設定されることを期待していました。
残念ながら、.NET Coreは、Unixシステムで環境変数を設定するメソッドをまだ実装していません。 これらのメソッドのドキュメントには、現在のプロセス以外への値の適用はWindowsでのみサポートされていると記載されています。 :frowning_face:
最も参考になるコメント
環境変数を_永続的に_定義するための_プロファイルに依存しない_方法を導入するPowerShellを探しているという事実を反映するために、問題のタイトルを変更することを提案できますか?
いくつかの考え:
環境変数は、定義上_shell / application-agnostic_であり、どのシェル/アプリケーションがそれらを作成したかに関係なく、_all_子孫プロセスによって認識されます。
PowerShellは_2_環境変数のみを「リッスン」し、
$env:PSModulePath
はそれらの1つです。私が理解していることから、Linux環境(それらすべて?)には、環境変数を定義するためのシステム全体のシェルに依存しないメカニズムとして、ファイル
/etc/environment
すでにあります。とはいえ、環境変数のセットが本当に_PowerShell_によってのみ使用される場合、システム全体の_PowerShell_プロファイル-
$profile.AllUsersAllHosts
-は間違いなくそれらを定義するのに適切な場所です。/etc/profile
、これはデフォルトのシェルが処理することが期待されています。これは(a)GUIアプリケーションでは有効ではなく、(b)この期待を尊重するためにデフォルトのシェルが必要であり、(c) POSIXシェル構文を理解するためのデフォルトシェル(PowerShellがデフォルトシェルとして定義されている場合、pwsh -l
開始すると、[_ Update _:/etc/profile
および~/.profile
は尊重されなくなります)pwsh -l
またはPowerShellをデフォルトのシェルとして使用します])。