我想在脚本中更改工作组。所以我newgrp test_grp1
在脚本中写了一行。但是运行此行后,我的脚本会自动退出。是否有解决此问题的解决方案?
#/bin/ksh
...
newgrp test_grp1
...
注意:我正在使用Unix AIX OS。
newgrp
用您指定的组启动一个子shell。因此,直到完成该子外壳程序后,脚本中的这一行才会结束。
newgrp
如果您使用bash
或,则对的处理也有所不同ksh
。ksh
将其实现为等效于的内置命令exec /usr/bin/newgrp [group]
。因此,就像exec
,newgrp
永不返回。(请参阅此处的一些文档。)
如果要返回它,并希望在具有更改的组标识的子外壳中执行命令,则可以使用重定向。
例如:
#!/bin/ksh
echo "Before newgrp"
/usr/bin/newgrp users <<EONG
echo "hello from within newgrp"
id
EONG
echo "After newgrp"
注意:/usr/bin/newgrp
显式调用,避免隐性exec
的ksh
。该脚本中的最后一条命令将在具有原始组标识的原始Shell中运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句