Eu vi exemplos de scripts de wrapper que, em poucas palavras, são os seguintes:
#!/bin/bash
myprog=sleep
echo "This is the wrapper script, it will exec "$myprog""
exec "$myprog" "$@"
Como visto acima, eles usam exec
para substituir o shell recém-criado quase imediatamente pelo $myprog
. Pode-se conseguir o mesmo sem exec
:
#!/bin/bash
myprog=sleep
echo "This is the wrapper script, it will exec "$myprog""
"$myprog" "$@"
Neste último exemplo, uma nova instância do bash é iniciada e, em seguida, $myprog
iniciada como um processo filho da instância do bash.
Quais são os benefícios da primeira abordagem?
exec
builtin .