Запустить программу из сценария оболочки, но вести себя только как один процесс?

7

Я могу запустить приложение из сценария оболочки, но не создать другой процесс. Я хочу, чтобы он выглядел только как один процесс . Не имеет значения, заменит ли мой сценарий оболочки новым процессом или будет ли он продолжаться после завершения действия вызываемого приложения.
Это также должно решить мой предыдущий вопрос: Ссылка
Большое вам спасибо за вашу помощь.

    
задан zubozrout 26.01.2013 в 09:29
источник

1 ответ

5

Вы можете использовать команду exec :

$ help exec
exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
    Replace the shell with the given command.

    Execute COMMAND, replacing this shell with the specified program.
    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,
    any redirections take effect in the current shell.

    Options:
      -a name   pass NAME as the zeroth argument to COMMAND
      -c        execute COMMAND with an empty environment
      -l        place a dash in the zeroth argument to COMMAND

    If the command cannot be executed, a non-interactive shell exits, unless
    the shell option 'execfail' is set.

    Exit Status:
    Returns success unless COMMAND is not found or a redirection error occurs.

Пример:

[email protected]:~$ PS1="supershell$ "
supershell$ bash
[email protected]host:~$ PS1="subshell$ "
subshell$ exec echo hello
hello
supershell$ 

Как вы можете видеть, подоболочка заменяется на echo .

    
ответ дан Andrea Corbellini 26.01.2013 в 09:35
источник