Извлечение подстроки из переменной в make-файле - PullRequest
0 голосов
/ 05 мая 2020

По сути, я должен соответствовать всем целям в форме: "tests / mytests-runthis"

У меня есть правило, которое делает это:

life-tests/%:
    ./(?????) < $@.in > runthis.tmp
    -diff runthis.tmp $@.out

Мне нужно все после da sh до go в области "(?????)", чтобы он запускался ./runthis runthis.tmp

Как я могу извлечь все после da sh из того, что я бы получил от $ @?

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Переменная automati c $* расширяется до строки, соответствующей шаблону (%):

life-tests/%:
        ./$* < $@.in > runthis.tmp
        -diff runthis.tmp $@.out
0 голосов
/ 05 мая 2020

Вы можете сделать это с помощью patsubst:

$ cat Makefile
life-tests/%:
        @./$(patsubst life-tests/%,%,$@).sh

$ cat hello.sh
#! /bin/bash
echo world

$ make life-tests/hello
world
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...