Рассмотрим следующий код
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; }
Я пытаюсь получить outer-scope.sh
для выхода при сбое вызова inner()
. Так как $()
вызывает вложенную оболочку, этого не происходит.
Как еще получить выходные данные функции, сохранив тот факт, что функция может завершиться с ненулевым кодом выхода?