Один из возможных способов - это квази-make-файл в stdin.
Итак, переменная .FEATURES
может быть напечатана следующим образом:
echo '$(info $(.FEATURES))' | make -f -
Следующая команда выводит guile
строка, если она поддерживается или ничего иным образом:
echo '$(info $(filter guile,$(.FEATURES)))' | make -f - 2>/dev/null
Вариант с использованием grep
:
echo '$(info $(.FEATURES))' | make -f - 2>/dev/null | grep -wo guile
Решение
Как @Упомянутое bobbogo, мы можем вообще избежать использования канала, используя параметр --eval
:
make --eval '$(info $(filter guile,$(.FEATURES)))' 2>/dev/null
Эта команда выведет 'guile' или ничего.