cha*_*987 9 scripting aix group
我想更改脚本中的工作组。所以我newgrp test_grp1在我的脚本中写了一行。但是我的脚本在运行这一行后会自动退出。有什么解决方案可以克服这个问题吗?
#/bin/ksh
...
newgrp test_grp1
...
Run Code Online (Sandbox Code Playgroud)
注意:我使用的是 Unix AIX 操作系统。
Mat*_*Mat 13
newgrp使用您指定的组启动一个子shell。因此,在该子shell 完成之前,脚本中的该行不会完成。
newgrp如果您使用bash或 ,的处理也不同ksh。ksh将其实现为内置命令,相当于exec /usr/bin/newgrp [group]. 所以,就像exec,newgrp永远不会回来。(请参阅此处的一些文档。)
如果您希望它返回,并希望在更改了组标识的子shell 中执行命令,您可以使用重定向。
例如:
#!/bin/ksh
echo "Before newgrp"
/usr/bin/newgrp users <<EONG
echo "hello from within newgrp"
id
EONG
echo "After newgrp"
Run Code Online (Sandbox Code Playgroud)
注意:/usr/bin/newgrp被显式调用以避免隐式execfrom ksh。该脚本中的最后一个命令将在原始 shell 中运行,具有原始组标识。
| 归档时间: |
|
| 查看次数: |
10961 次 |
| 最近记录: |