Когда я пытаюсь выполнить exec ls
, моя сессия шпатлевки закрывается. В чем разница между ls
и exec ls
?В чем разница между ls и «exec ls» в Linux
Зачем нам нужна команда exec
, и какова польза от этой команды?
Когда я пытаюсь выполнить exec ls
, моя сессия шпатлевки закрывается. В чем разница между ls
и exec ls
?В чем разница между ls и «exec ls» в Linux
Зачем нам нужна команда exec
, и какова польза от этой команды?
exec
заменяет текущий процесс (оболочку) новым процессом. Если вы вызываете программу без exec
, оболочка будет разветвлять новый процесс и затем заменять новый процесс программой.
exec
- это встроенная командная оболочка. На странице руководства:
Если exec указан с командой, он должен заменить командование командами без создания нового процесса.
Так что, когда вы выполняете exec ls
в оболочке, ваша оболочка будет заменен ls
процесса; когда этот процесс завершается, оболочка выходит. По сравнению с source
или .
, это может быть полезно в сценариях оболочки.
Связанный: http://stackoverflow.com/a/18351547/1983854 – fedorqui
Возможный дубликат [Что используется командой exec в сценариях оболочки?] (Http://stackoverflow.com/questions/18351198/what -is-The-использование-оф-ехес-команды-в-оболочке-скриптов) – Johan