Considere o seguinte código
outer-scope.sh
#!/bin/bash
set -e
source inner-scope.sh
echo $(inner)
echo "I thought I would've died :("
inner-scope.sh
#!/bin/bash
function inner() { echo "winner"; return 1; }
Estou tentando outer-scope.sh
sair quando uma chamada inner()
falha. Desde que $()
invoca um sub-shell, isso não acontece.
De que outra forma eu obtenho a saída de uma função, preservando o fato de que a função pode sair com um código de saída diferente de zero?