2017-06-01 3 views
0

ich diese in eine Datei schreiben möchten:verhindern variable Expansion in Make-Datei

-MF"$(@:%.o=%.d)" -MT"$(@)" -o "[email protected]" "$<" 

aber wenn ich diese in eine Datei Echo, mit "" oder '', werden die Variablen erweitern, wie kann ich die Expansion verhindern und schreibe es so wie es ist?

P.S. echo '-MF"$(@:%.o=%.d)" -MT"$(@)" -o "[email protected]" "$<"' wird in einem Makefile aufgerufen.

in meinem Make-Datei, lasse ich sagen, ich habe:

all: 
    echo '-MF"$(@:%.o=%.d)" -MT"$(@)" -o "[email protected]" "$<"' > $file 

, was ich in der Datei sehen

ist -MF "alle" -MT "alle" -o "all" " "

+0

Einfache Anführungszeichen werden nicht erweitert, wenn Parametererweiterung, haben Sie versucht, echo '-MF "$ (@:%. O =%. D)" -MT "$ (@)" -o "$ @" "$ <"' > file' – Inian

+0

Ich tat, es erweitert sie – apramc

+0

@Inian: Ich führe dies in einem Makefile, – apramc

Antwort

1

Verwenden $$ auf ein Dollar-Zeichen in ein Make Rezept setzen

all: 
    echo '-MF"$$(@:%.o=%.d)" -MT"$$(@)" -o "[email protected]" "$$<"' > $file 
Verwandte Themen