unix – 如何在脚本中使用newgrp,然后在脚本退出时保留在该组中

前端之家收集整理的这篇文章主要介绍了unix – 如何在脚本中使用newgrp,然后在脚本退出时保留在该组中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个solaris盒子上运行一个脚本.特别是SunOS 5.7.我不是根我正在尝试执行类似于以下的脚本:

newgrp thegroup <<
FOO
source .login_stuff
echo “hello world”
FOO

脚本运行.问题是它返回到调用进程,这将使我进入旧的源代码.login_stuff来源.我明白这个行为.我正在寻找的是一种留在子shell中的方法.现在我知道我可以把xterm& (见下文),这样做,但是有一个新的xterm是不合需要的.

Passing your current pid as a parameter.

newgrp thegroup <<
FOO
source .login_stuff
xterm&
echo $1
kill -9 $1
FOO

我没有sg可用.
另外,newgrp是必要的.

以下作品很好;将以下位置放在(Bourne或 Bash)脚本的顶部:
### first become another group
group=admin

if [ $(id -gn) != $group ]; then
  exec sg $group "$0 $*"
fi

### now continue with rest of the script

这在Linuxen上工作正常.一个警告:包含空格的参数分开.我建议你使用env arg1 =’value 1’arg2 =’value 2’script.sh构造来传递它们(由于某种原因我无法使用$@)

猜你在找的Bash相关文章