Я видел примеры сценариев-оболочек, которые в двух словах следующие:
#!/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
встроенной оболочки .