Присвоение переменной - это просто простая команда, поэтому вы можете использовать условие if для проверки успеха или неудачи функции:
if ! FUNCTION_OUTPUT=$(TEST hi); then
echo Function return non-zero status
exit 1
fi
# This line never printed
printf '%s\n' "$FUNCTION_OUTPUT"
Если функция успешна, у вас будет переменная FUNCTION_OUTPUT
с результатом функции:
if ! FUNCTION_OUTPUT=$(TEST hii); then
echo Function return non-zero status
exit 1
fi
# Output content of FUNCTION_OUTPUT
printf '%s\n' "$FUNCTION_OUTPUT"
A.B был прав в том, что проблема связана с разрешениями SELinux. Новому файлу требовался тип mysqld_log_t
. Я исправил проблему, изменив тип:
chcon -t mysqld_log_t /var/log/mysqld.err