Widziałem przykłady skryptu opakowania, które w skrócie są następujące:
#!/bin/bash
myprog=sleep
echo "This is the wrapper script, it will exec "$myprog""
exec "$myprog" "$@"
Jak widać powyżej, execprawie natychmiast zastępują nowo utworzoną powłokę $myprog. Można to osiągnąć bez exec:
#!/bin/bash
myprog=sleep
echo "This is the wrapper script, it will exec "$myprog""
"$myprog" "$@"
W tym ostatnim przykładzie uruchamiana jest nowa instancja bash, a następnie $myproguruchamiana jako proces potomny instancji bash.
Jakie są zalety pierwszego podejścia?
execwbudowanej powłoki .