2013-03-28 2 views
5

Als Teil meines Setups, ich brauche oft in unseren environements,bekam bash newgrp Funktionalität beim Start

newgrp voodoo 

zu verwenden, wenn ich versuche, es in der .bashrc Datei zu setzen, ich Endlosschleifen zu bekommen.

Irgendwelche Ideen, wie die gleiche Funktionalität automatisch beim Start geladen wird?

Antwort

6

Es gibt zwei Skripte, die loszulegen, sobald Sie bash starten:

  • .bashrc für interaktive Shells

  • .bash_profile für Login-Shells

auf dem Weg Je Sie laufen Der Befehl newgrp einer davon wird ausgeführt:

  • newgrp - your_group wird eine neue Login-Shell starten und damit .bash_profile

  • newgrp your_group (ohne der Bindestrich) gelesen wird, eine neue interaktive Shell Lesung .bashrc

beginnen Wenn Sie dies nicht tun Wenn Sie die eine Datei von der anderen Quelle beziehen, sollten Sie in der Lage sein, die Rekursion zu umgehen, indem Sie die richtige Kombination aus Startskript und newgrp-Switch

auswählen
  • newgrp - ... in .bashrc wird

    arbeiten
  • newgrp ... in .bash_profile

Die beiden anderen Kombinationen, die Sie bereits an die Rekursion beschrieben funktionieren führen. Wenn eine der beiden Dateien die andere Quelle liefert, wie es oft zu sehen ist, werden Sie sowieso in Schwierigkeiten geraten.

BTW .: wenn .bash_profile nicht existiert, liest bash stattdessen die Datei .profile. Ich erwähne es nur, da einige Experten es sogar schaffen, ihre .bashrc von dort zu beziehen.

Wenn keine der beiden Kombinationen für Ihr Setup zutrifft, müssen Sie stattdessen Shell-Skripts verwenden. Die Umgebungsvariable $GROUPS sollte die Gruppe melden Sie sind Mitglied, so etwas wie:

[ "$GROUPS" = "200" ] || newgrp your_group 

oder was auch immer die ID Ihrer Voodoo-Gruppe helfen könnte.

+0

Sieht so aus, als ob es in ~/.bash_profile eingegeben wird, um den Job zu erledigen. Vielen Dank. – user1134991