启动时获取bash newgrp功能
作为我设置的一部分,我经常需要在我们的环境中使用启动时获取bash newgrp功能,bash,Bash,作为我设置的一部分,我经常需要在我们的环境中使用 newgrp voodoo 如果我尝试将它放入.bashrc文件中,就会得到无限循环 您知道如何在启动时自动加载相同的功能吗?启动bash后,将启动两个脚本: 交互式shell的.bashrc 登录shell的.bash\u配置文件 根据运行newgrp命令的方式,将执行其中一个命令: newgrp-您的组将启动一个新的登录shell,从而读取.bash\u profile newgrp您的组(不带破折号)将启动一个新的交互式shell读
newgrp voodoo
如果我尝试将它放入.bashrc
文件中,就会得到无限循环
您知道如何在启动时自动加载相同的功能吗?启动bash后,将启动两个脚本:
- 交互式shell的
.bashrc
- 登录shell的
.bash\u配置文件
newgrp
命令的方式,将执行其中一个命令:
newgrp-您的组将启动一个新的登录shell,从而读取
.bash\u profile
newgrp您的组(不带破折号)将启动一个新的交互式shell读取
。bashrc
将起作用中的
。bashrcnewgrp-…
将起作用中的
。bash\u profilenewgrp…
.bash\u profile
不存在,bash将读取文件.profile
。我只是提到这一点,因为一些专家甚至设法从那里获取他们的.bashrc
如果这两种组合都不适用于您的设置,您可能不得不求助于shell脚本。环境变量$GROUPS
应报告您所属的组,例如:
[ "$GROUPS" = "200" ] || newgrp your_group
或者不管你的伏都教团体的id是什么都可能有帮助。你可以用命令
id-gn
检查当前的团体id,然后只有当你不在正确的团体中时才调用newgrp
。因此,您的.bashrc
可以包括
# Switch groups, but only if necessary
if [[ `id -gn` != "mygroup" ]]
then
newgrp mygroup
exit
fi
请注意,此语法也适用于ksh。看起来像是将其输入到~/.bash_配置文件中即可完成任务。谢谢