Решил структурировать скрипт-портянку, но столкнулся с такой штукой, что директива return принимает число и заполняет им переменную $?
На ум пришло создание глобальной переменной для передачи данных, но за такой рефакторинг Фаулер бы руку не пожал. Еще вариант это использовать конвеер, но выглядит как-то не очень.
f1(){
echo "str1"
}
if [[ $(f1) == "str1" ]]; then
echo this is good
fi