在启动时获取bash newgrp功能

use*_*991 7 bash

作为我的设置的一部分,我经常需要在我们的环境中使用

newgrp voodoo
Run Code Online (Sandbox Code Playgroud)

如果我尝试将它放在.bashrc文件中,我会得到无限循环.

任何想法如何在启动时自动加载相同的功能?

mik*_*yra 9

一旦你启动bash,就会有两个脚本启动:

  • .bashrc 用于交互式shell

  • .bash_profile 用于登录shell

根据您运行newgrp命令的方式,将执行其中一个命令:

  • newgrp - your_group 将启动一个新的登录shell,从而阅读 .bash_profile

  • newgrp your_group(没有破折号)将启动一个新的交互式shell读取.bashrc

如果你没有从另一个文件中获取一个文件,那么你应该能够通过选择正确的启动脚本和newgrp开关组合来绕过递归.

  • newgrp - ....bashrc将工作

  • newgrp ....bash_profile将工作

其他两个组合将导致您已经描述过的递归.如果其中一个文件来源于另​​一个,因为经常看到你会遇到麻烦.

顺便说一句:如果.bash_profile不存在,bash会读取文件.profile.我只是提到它,因为一些专家甚至设法.bashrc从那里采购他们.

如果这两种组合都不适用于您的设置,则可能需要使用shell脚本.环境变量$GROUPS应该报告您所属的组,例如:

[ "$GROUPS" = "200" ] || newgrp your_group
Run Code Online (Sandbox Code Playgroud)

或者你巫毒团体的id可能会有所帮助.