Czy ktoś wie, jak użyć przekierowania dokumentu tutaj na przepis?Przepis Makefile z przekierowaniem dokumentu tutaj
test:
sh <<EOF
echo I Need This
echo To Work
ls
EOF
nie mogę znaleźć żadnego rozwiązania próbuje zwykły sposób ukośnika (co w zasadzie kończy się poleceniem w jednej linii).
Uzasadnienie:
Mam zestaw receptur wielokreskowych że chcą poprzez innego polecenia (na przykład, SH, dokowanym).
onelinerecipe := echo l1
define twolinerecipe :=
echo l1
echo l2
endef
define threelinerecipe :=
echo l1
echo l2
echo l3
endef
# sh as proxy command and proof of concept
proxy := sh
test1:
$(proxy) <<EOF
$(onelinerecipe)
EOF
test2:
$(proxy) <<EOF
$(twolinerecipe)
EOF
test3:
$(proxy) <<EOF
$(threelinerecipe)
EOF
Rozwiązanie, które chciałbym uniknąć: przekształć makra multilinii w pojedyncze linie.
define threelinerecipe :=
echo l1;
echo l2;
echo l3
endef
test3:
$(proxy) <<< "$(strip $(threelinerecipe))"
To działa (ja używam gmake 4.0 i bash jako powłoki make), ale wymaga to zmiany moich przepisów i mam dużo. Pasek usuwa nowe linie, z makra, a następnie wszystko jest napisane w jednym wierszu.
mój koniec celem jest: proxy := docker run ...
Co powiesz na sh -c ''wpisz tutaj swoje polecenia''? – fanton
Możliwy duplikat [Heredoc w pliku Makefile?] (Http://stackoverflow.com/questions/5873025/heredoc-in-a-makefile) – e0k
@ e0k Dodałem kontekst –