Powershell: Linuxで環境変数($ env:PSModulePathなど)を変更する

作成日 2017年07月25日  ·  3コメント  ·  ソース: PowerShell/PowerShell

こんにちは、みんな、

Linuxで環境変数(たとえば、$ env:NameまたはGet-ChildItem env:からアクセス)を変更できれば素晴らしいと思います。

たとえば、 / etcに新しい構成ファイルの値を設定するには?

Windowsでは、たとえばPSModulePathを変更して、カスタムパスを追加できます。 Linuxでの唯一のオプションは、すべてのユーザーのプロファイルps1ファイルを作成することです。

ありがとうございました。

Issue-Discussion Issue-Enhancement WG-Engine-Providers

最も参考になるコメント

環境変数を_永続的に_定義するための_プロファイルに依存しない_方法を導入するPowerShellを探しているという事実を反映するために、問題のタイトルを変更することを提案できますか?

いくつかの考え:

  • 環境変数は、定義上_shell / application-agnostic_であり、どのシェル/アプリケーションがそれらを作成したかに関係なく、_all_子孫プロセスによって認識されます。

  • PowerShellは_2_環境変数のみを「リッスン」し、 $env:PSModulePathはそれらの1つです。

  • 私が理解していることから、Linux環境(それらすべて?)には、環境変数を定義するためのシステム全体のシェルに依存しないメカニズムとして、ファイル/etc/environmentすでにあります。

  • とはいえ、環境変数のセットが本当に_PowerShell_によってのみ使用される場合、システム全体の_PowerShell_プロファイル- $profile.AllUsersAllHosts -は間違いなくそれらを定義するのに適切な場所です。

    • このソリューションは、環境変数を定義するためのシステム全体のメカニズムを持たないmacOSでも機能します(もう)。
    • (macOSには/etc/profile 、これはデフォルトのシェルが処理することが期待されています。これは(a)GUIアプリケーションでは有効ではなく、(b)この期待を尊重するためにデフォルトのシェルが必要であり、(c) POSIXシェル構文を理解するためのデフォルトシェル(PowerShellがデフォルトシェルとして定義されている場合、 pwsh -l開始すると、[_ Update _: /etc/profileおよび~/.profileは尊重されなくなります) pwsh -lまたはPowerShellをデフォルトのシェルとして使用します])。

全てのコメント3件

環境変数を_永続的に_定義するための_プロファイルに依存しない_方法を導入するPowerShellを探しているという事実を反映するために、問題のタイトルを変更することを提案できますか?

いくつかの考え:

  • 環境変数は、定義上_shell / application-agnostic_であり、どのシェル/アプリケーションがそれらを作成したかに関係なく、_all_子孫プロセスによって認識されます。

  • PowerShellは_2_環境変数のみを「リッスン」し、 $env:PSModulePathはそれらの1つです。

  • 私が理解していることから、Linux環境(それらすべて?)には、環境変数を定義するためのシステム全体のシェルに依存しないメカニズムとして、ファイル/etc/environmentすでにあります。

  • とはいえ、環境変数のセットが本当に_PowerShell_によってのみ使用される場合、システム全体の_PowerShell_プロファイル- $profile.AllUsersAllHosts -は間違いなくそれらを定義するのに適切な場所です。

    • このソリューションは、環境変数を定義するためのシステム全体のメカニズムを持たないmacOSでも機能します(もう)。
    • (macOSには/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:

このページは役に立ちましたか?
0 / 5 - 0 評価