Hallo zusammen,
Ich denke, es wäre großartig, wenn Sie unter Linux Umgebungsvariablen ändern können (auf die beispielsweise über $env:Name oder Get-ChildItem env: zugegriffen wird).
Zum Beispiel um dort Werte zu setzen eine neue Konfigurationsdatei in /etc ?
Unter Windows kann ich beispielsweise PSModulePath ändern und einen benutzerdefinierten Pfad hinzufügen. Die einzige Option unter Linux besteht darin, eine Profil-PS1-Datei für alle Benutzer zu erstellen.
Dankeschön.
Kann ich vorschlagen, dass Sie den Titel Ihres Problems ändern, um der Tatsache Rechnung zu tragen, dass Sie nach PowerShell suchen, um eine _profilunabhängige_ Möglichkeit zum _beständigen_ Definieren von Umgebungsvariablen einzuführen?
Ein paar Gedanken:
Umgebungsvariablen sind per Definition _shell/application-agnostic_ und werden von _allen_ Nachkommensprozessen gesehen, unabhängig davon, von welcher Shell/Anwendung sie erstellt wurden.
PowerShell "hört" nur auf _2_ Umgebungsvariablen, wobei $env:PSModulePath
eine davon ist.
Soweit ich weiß, haben Linux-Umgebungen (alle?) bereits die Datei /etc/environment
als systemweiten, Shell-unabhängigen Mechanismus zum Definieren von Umgebungsvariablen.
Das heißt, wenn ein Satz von Umgebungsvariablen wirklich nur von _PowerShell_ verwendet wird, dann ist das systemweite _PowerShell_-Profil - $profile.AllUsersAllHosts
- wohl der richtige _ist_ der richtige Ort, um sie zu definieren.
/etc/profile
, die von der Standard-Shell verarbeitet werden sollen, was (a) nicht für GUI-Anwendungen wirksam wird und (b) erfordert, dass die Standard-Shell diese Erwartung erfüllt und (c) erfordert die Standard-Shell, um die POSIX-Shell-Syntax zu verstehen (die PowerShell, wenn sie als Standard-Shell definiert wäre, nicht [_Update_: /etc/profile
und ~/.profile
jetzt _ehrenswert wäre, wenn Sie mit pwsh -l
oder verwenden Sie PowerShell als Standard-Shell]).Ich habe versucht, eine Umgebungsvariable wie diese auf einem Ubuntu-Computer festzulegen:
Ich hatte gehofft, dass dies die Datei /etc/environment bearbeiten würde, um die Umgebungsvariable systemweit festzulegen.
Leider muss .NET Core noch eine Methode zum Festlegen von Umgebungsvariablen in Unix-Systemen implementieren. Die Dokumentation für diese Methoden besagt, dass das Anwenden von Werten auf alles andere als den aktuellen Prozess nur unter Windows unterstützt wird. :stirnrunzeln_gesicht:
Hilfreichster Kommentar
Kann ich vorschlagen, dass Sie den Titel Ihres Problems ändern, um der Tatsache Rechnung zu tragen, dass Sie nach PowerShell suchen, um eine _profilunabhängige_ Möglichkeit zum _beständigen_ Definieren von Umgebungsvariablen einzuführen?
Ein paar Gedanken:
Umgebungsvariablen sind per Definition _shell/application-agnostic_ und werden von _allen_ Nachkommensprozessen gesehen, unabhängig davon, von welcher Shell/Anwendung sie erstellt wurden.
PowerShell "hört" nur auf _2_ Umgebungsvariablen, wobei
$env:PSModulePath
eine davon ist.Soweit ich weiß, haben Linux-Umgebungen (alle?) bereits die Datei
/etc/environment
als systemweiten, Shell-unabhängigen Mechanismus zum Definieren von Umgebungsvariablen.Das heißt, wenn ein Satz von Umgebungsvariablen wirklich nur von _PowerShell_ verwendet wird, dann ist das systemweite _PowerShell_-Profil -
$profile.AllUsersAllHosts
- wohl der richtige _ist_ der richtige Ort, um sie zu definieren./etc/profile
, die von der Standard-Shell verarbeitet werden sollen, was (a) nicht für GUI-Anwendungen wirksam wird und (b) erfordert, dass die Standard-Shell diese Erwartung erfüllt und (c) erfordert die Standard-Shell, um die POSIX-Shell-Syntax zu verstehen (die PowerShell, wenn sie als Standard-Shell definiert wäre, nicht [_Update_:/etc/profile
und~/.profile
jetzt _ehrenswert wäre, wenn Sie mitpwsh -l
oder verwenden Sie PowerShell als Standard-Shell]).