Sai do script executando outro script

4

Eu tenho essa condicional em um script:

if [[ "${SUMAN_ENV}" != "local" ]]; then
 ./suman.sh $@  # run this script instead
 # need to exit here
fi

se a condição for satisfeita, gostaria de executar outro script.

É a melhor maneira de fazer isso apenas para fazer isso:

if [[ "${SUMAN_ENV}" != "local" ]]; then
 ./suman.sh $@
 exit $?  # exit with the code given by the above command
fi

ou existe alguma outra maneira?

    
por Alexander Mills 16.07.2017 / 08:48

1 resposta

12

Arquivo hello :

#!/bin/sh
echo "$0"
exec ./world
echo "$0"

Arquivo world :

#!/bin/sh
echo "$0"
exit 33 # to have an exit code example                                                                

Executar hello :

$ ./hello 
./hello
./world
$ echo $?
33

Depois que hello executar world via exec e world finishes, o restante de hello não será executado. O código de saída é o de world .

    
por 16.07.2017 / 09:06