Статус выхода из цикла соответствует статусу последней выполненной в нем команды, то есть echo
или break
, и обе они обычно имеют статус выхода 0. Поэтому вам необходимо сохранять и проверять статус цикла. условие. Я бы предложил использовать функцию:
loopcheck() {
for cond in {0,1,0}; do
if [[ $cond = 0 ]]; then
echo 0;
else
ret=$?; # preserve exit status of test
echo 1;
return $ret; # pass it on
fi;
done
}
loopcheck && echo "true" || echo "false"
Другой вариант — сохранить $ret
, как указано выше, и проверить его значение вне цикла.
После добавления (обязательного)-std=c++11
флага (странно, по умолчанию на данный момент установлено значение -std=gnu++17
--, т. е. расширения ISO C++ 2017 + GNU --, которые должны включать предыдущий ), вы поняли компилировать, но определение дляfftw_malloc
(предположительно в какой-то библиотеке )отсутствует. Проверьте страницу руководства для fftw_malloc
, там должно быть указано правильное заклинание. Если это вызывается, например, из Makefile
, проверьте все строки LIB =
или подобные.