Ich bin auf einer Linux-Workstation in einem Netzwerk mit einer "alten" Distribution. Darüber hinaus wird die Login-Shell für CSH erzwungen. Ich habe bereits bei Admins nachgefragt, ob es möglich wäre, zu einem anderen zu wechseln (ich hätte gerne eine Bash), aber es war ein No-Go ...
Daher führe ich bash über die Befehlszeile als interaktive Shell ohne Anmeldung aus (tatsächlich verwende ich gnome und gnome-terminal mit einem Profil, das / bin / bash -i als Befehl ausführt). Sehr oft, wenn nicht alle meine Skripte bash verwenden, so starte ich sie damit und rufe bash mit einem Skript auf. Es ist chaotisch, aber es funktioniert.
Ich habe CSHRC mit Umgebungsvariablen, Aliasnamen und Optionen für csh, die in einer .login- und einer .cshrc-Datei in meinem $ HOME definiert sind. Ich habe auch ein .bashrc / .bash_profile (das zu .bashrc umleitet, wenn dies eine interaktive Shell ist) / .bash_aliases mit einigen anderen Variablen und einigen, die gleich sind. Wenn ich die Bash-Shell ausführe, erbe ich die Umgebungsvariablen, die in meiner .login-Datei definiert sind. Ich würde gerne alles ignorieren, was in diesem Setup eingerichtet ist, wenn ich bash laufen lasse.
Ich möchte wissen, ob es eine Option zum Ausführen von bash gibt, bei der alle anderen Umgebungsvariablen ignoriert werden, die zuvor in meiner CSH-Anmeldesitzung definiert wurden, wenn ich meine BASH-Shell ausführe.
Hast du eine Idee?
Vielen Dank
Sie möchten bash als nicht interaktive Shell in CSH ausführen, wobei bash-Variablen in .bash_profile definiert sind, oder?
Sie könnten ein Shooting geben:
aber ich kann es nicht testen.
quelle
./bash --login
führe dies aussource .bash_profile
man bash
. Wenn Sie einfach nur Variablen aus der Umgebung entfernen möchtenunset VARNAME1 VARNAME2
.env | awk -F= '/^\w/ {print $1}' | xargs
, dann entfernen Sie die wichtigen und deaktivieren.