Esegui il programma da uno script di shell ma si comporta come un solo processo?

8

Esiste un modo per eseguire un'applicazione da uno script di shell ma non creare un altro processo. Voglio che assomigli a un processo solo . Non importa se il mio script di shell viene sostituito da un nuovo processo o se continuerà dopo che un'applicazione chiamata termina.
Questo dovrebbe anche risolvere la mia domanda precedente: link
Grazie mille per il tuo aiuto.

    
posta zubozrout 26.01.2013 - 10:29

1 risposta

6

Puoi utilizzare il comando 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.

Esempio:

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

Come puoi vedere, la subshell è sostituita da echo .

    
risposta data Andrea Corbellini 26.01.2013 - 10:35

Leggi altre domande sui tag