2013-09-12 5 views
1

Когда я пытаюсь выполнить exec ls, моя сессия шпатлевки закрывается. В чем разница между ls и exec ls?В чем разница между ls и «exec ls» в Linux

Зачем нам нужна команда exec, и какова польза от этой команды?

+0

Связанный: http://stackoverflow.com/a/18351547/1983854 – fedorqui

+0

Возможный дубликат [Что используется командой exec в сценариях оболочки?] (Http://stackoverflow.com/questions/18351198/what -is-The-использование-оф-ехес-команды-в-оболочке-скриптов) – Johan

ответ

3

exec заменяет текущий процесс (оболочку) новым процессом. Если вы вызываете программу без exec, оболочка будет разветвлять новый процесс и затем заменять новый процесс программой.

2

exec - это встроенная командная оболочка. На странице руководства:

Если exec указан с командой, он должен заменить командование командами без создания нового процесса.

Так что, когда вы выполняете exec ls в оболочке, ваша оболочка будет заменен ls процесса; когда этот процесс завершается, оболочка выходит. По сравнению с source или ., это может быть полезно в сценариях оболочки.

Смежные вопросы