newgrp inicia um subshell com o grupo especificado. Assim, essa linha no seu script não terminará até que a subcamada esteja concluída.
A manipulação de newgrp também é diferente se você estiver usando bash ou ksh . ksh implementa como um comando interno equivalente a exec /usr/bin/newgrp [group] . Então, como exec , newgrp nunca retorna. (Veja alguma documentação aqui .
Se você quiser que ele retorne e queira executar comandos nesse subshell com identidade de grupo alterada, você poderá usar o redirecionamento.
Por exemplo:
#!/bin/ksh
echo "Before newgrp"
/usr/bin/newgrp users <<EONG
echo "hello from within newgrp"
id
EONG
echo "After newgrp"
Aviso: /usr/bin/newgrp é chamado explicitamente para evitar o implícito exec de ksh . O último comando nesse script será executado dentro do shell original, com a identidade do grupo original.