Das Problem
Vergleichen Sie die Zeile in der makefile
:
find ./ -type f -regextype emacs -regex ".*tests$" | xargs rm -f
Mit der Zeile in der Fehlermeldung:
find ./ -type f -regextype emacs -regex ".*tests | xargs rm -f
Es scheint, dass das make
schluckte $"
.
Die Lösung
Um dies zu vermeiden, muss das Dollarzeichen gesperrt werden. Versuchen:
find ./ -type f -regextype emacs -regex ".*tests$$" | xargs rm -f
Dokumentation
Aus dem GNU Make Manual Abschnitt 4.2 :
Da Dollarzeichen verwendet werden, um variable Verweise zu erstellen, müssen Sie, wenn Sie wirklich ein Dollarzeichen in einem Ziel oder einer Voraussetzung haben möchten, zwei davon schreiben, "$$" (siehe Verwenden von Variablen). Wenn Sie die sekundäre Erweiterung aktiviert haben (siehe Sekundäre Erweiterung) und ein literales Dollarzeichen in der Voraussetzungsliste haben möchten, müssen Sie tatsächlich vier Dollarzeichen ("$$$$") schreiben.