更改脚本中的默认组

Nat*_*ate 15 linux bash shell

是否可以在脚本执行期间更改脚本内的用户默认组?

我需要在脚本中生成具有适当用户和组的文件,但我的用户的主要组不是谁应该拥有结果输出.

$ groups
groupa groupb

$ ./myscript.sh

$ ls -l
-rw-r--r-- 1 me groupa     0 Sep 17 09:42 myscript_output.txt
Run Code Online (Sandbox Code Playgroud)

但我想要 "groupb".

myscript.sh:

#!/bin/bash

touch "myscript_output.txt"
Run Code Online (Sandbox Code Playgroud)

dog*_*ane 19

尝试使用该newgrp命令将用户的主要组更改为该用户所属的另一个组:

#!/bin/bash

newgrp groupb << END
    touch "myscript_output.txt"
END
Run Code Online (Sandbox Code Playgroud)


Nat*_*ate 5

sg命令可以很好地做到这一点。

#!/bin/bash

sg groupb "touch myscript-output.txt"
Run Code Online (Sandbox Code Playgroud)