Napisałem program do przydziału, który ma wypisywać swoje wyjście na standardowe wyjście. Specyfikacja przypisania wymaga stworzenia pliku Makefile, który po wywołaniu make run > outputFile
powinien uruchomić program i zapisać dane wyjściowe do pliku, który ma odcisk palca SHA1 identyczny z podanym w specyfikacji.
Mój problem polega na tym, że mój plik makefile:
...
run:
java myprogram
wypisuje również polecenie, które uruchamia mój program (np. java myprogram) do pliku wyjściowego, tak że mój plik zawiera tę dodatkową linię powodującą nieprawidłowy odcisk palca.
Czy istnieje sposób na wykonanie polecenia bez wywołania polecenia w wierszu poleceń?
make -s
robi, a IMHO i tak jest tutaj znacznie lepszym rozwiązaniem. Niedawno została opublikowana jako osobna odpowiedź na to pytanie.Jeszcze prostsze, użyj
make -s
(tryb cichy)!źródło
@
poleceniami utrudnia debugowanie i dodaje wiele bałaganu..SILENT:
celu. Zobacz make.mad-scientist.net/managing-recipe-echoing-Wall
, nadal je drukuje. Oczywiście, dlaczego miałbyś używać,-s
jeśli chcesz również widzieć ostrzeżenia?Możesz także użyć
.SILENT
W takim przypadku
make hi
wypisze polecenie, alemake run
nie wyświetli.źródło
Efekt poprzedzenia polecenia
@
znakiem można rozszerzyć na sekcję, rozszerzając polecenie za pomocą końcowego ukośnika odwrotnego w wierszu. Jeśli.PHONY
pożądane jest polecenie wstrzymania wyjścia, można rozpocząć sekcję od:źródło