Я бачив приклади сценарію обгортки, які в двох словах наступні:
#!/bin/bash
myprog=sleep
echo "This is the wrapper script, it will exec "$myprog""
exec "$myprog" "$@"
Як видно з вище, вони використовують exec
для заміни новоствореної оболонки майже одразу на $myprog
. Цього можна було досягти і без exec
:
#!/bin/bash
myprog=sleep
echo "This is the wrapper script, it will exec "$myprog""
"$myprog" "$@"
У цьому останньому прикладі запускається новий екземпляр bash, а потім $myprog
запускається як дочірній процес bash-екземпляра.
Які переваги першого підходу?
exec
вбудованої оболонки .