Definindo sinalizadores bash em subshells - isso afeta o shell pai?

0

Eu tenho isso em um script bash:

(
  set -o pipefail
  echo "foobar" | bash
  set +o pipefail
)

preciso redefinir a configuração do pipefail ou posso omitir essa linha? Em outras palavras, a configuração pipefail na subshell afeta o pai?

Então, isso significa que eu suponho que isso:

(
  set -o pipefail
  echo "foobar" | bash
)

não é realmente diferente do acima?

    
por Alexander Mills 07.05.2018 / 23:51

1 resposta

2

Para citar a página de manual :

Changes made to the subshell environment cannot affect the shell's execution environment.

Você pode testar seu caso com facilidade:

$ set +o pipefail
$ (set -o pipefail)
$ shopt -o | grep pipefail
pipefail        off
    
por 08.05.2018 / 00:51