Wie kann man die Umgebungsvariable ändern, wenn sich der Benutzer ändert?

338
dukasvili

Ich habe ein tragbares Terminal mit Bash-Shell auf einem USB-Laufwerk, und ich möchte bei jedem Computerwechsel verschiedene Umgebungsvariablen laden. Die Benutzer sind auf anderen Computern unterschiedlich. Wie kann ich die .bashrc-Datei dafür einrichten?

0

1 Antwort auf die Frage

1
iwaseatenbyagrue

Ich bin nicht sicher, ob ich vollständig verstehe, was Sie tun wollen.

Ich vermute, dass Sie im Grunde ein paar Umgebungsdateien behalten möchten, die Sie bei Bedarf herunterladen können.

Angenommen, Sie wollten Ihre Umgebung auf einer Remote-Maschine einrichten, in die Sie SSH einsetzen, könnte Ihre .bashrc so etwas enthalten

source ~/path/to/file.env 

oder

. ~/path/to/file.env 

Denken Sie daran, dass .bashrc möglicherweise nicht die Datei ist, die Sie bearbeiten müssen. Von der Basis meines Systems:

# There are 3 different types of shells in bash: the login shell, normal shell # and interactive shell. Login shells read ~/.profile and interactive shells # read ~/.bashrc; in our setup, /etc/profile sources ~/.bashrc - thus all # settings made here will also take effect in a login shell. 

Wenn Sie Benutzer lokal wechseln, funktioniert dieser Ansatz ebenfalls.

Wenn Sie Ihre eigene Umgebung ändern wollten (nicht sicher, warum Sie dies tun sollten, aber nicht hier zu urteilen), ist es wahrscheinlich am einfachsten, die von Ihnen benötigte ENV-Datei manuell zu erstellen, wann immer Sie sie benötigen.

Es klingt zwar so, als wären Sie unter Windows, in diesem Fall müssen Sie möglicherweise sicherstellen, dass Ihre lokale Shell ähnlich wie Bash funktioniert und das Sourcing von Dingen ermöglicht.

Denken Sie auch daran, dass Sie den envBefehl verwenden können, um Folgendes auszuführen:

env -i bash -c 'source .foo.env && do_something.sh' 
Ich denke an ein Skript, wenn ich auf pc1 bin, benutze env1, wenn pc2 en2 benutzt. Ja, ich bin unter Windows und nutze MobaXterm mit bash dukasvili vor 7 Jahren 0
Ok - der absolut einfachste Weg ist, eine Env-Datei manuell zu laden, wenn Sie sie benötigen. Ich denke, wenn Sie es wirklich wollten, könnten Sie dies mit einem Skript erledigen, indem Sie beispielsweise Ihren Hostnamen und / oder Ihren Benutzernamen betrachten und die 'richtige' env-Datei als Quelle verwenden. Etwas wie "source ~ / envs / $ HOSTNAME_ $ USER.env" in Ihrem .bashrc sollte funktionieren. iwaseatenbyagrue vor 7 Jahren 0
Ja das ist genau das, was ich will. dukasvili vor 7 Jahren 0