在 Makefile 中创建多行 echo 块

Big*_*ies 0 bash makefile sh

我正在尝试为一个项目编写一个简单的 Makefile,并使用一些 ASCII 艺术作为标题,但是当我运行它时,我不断收到错误。有没有办法添加多行 echo 语句而不是 @echoing 每行?这可能不会给我带来错误,比如BOF-之类EOF的东西?

我所拥有的是;

.PHONY: all

info: header

header:
    clear
    @echo "___________              __   "
    @echo "\__    ___/___   _______/  |_ "
    @echo "  |    |_/ __ \ /  ___/\   __\"
    @echo "  |    |\  ___/ \___ \  |  |  "
    @echo "  |____| \___  >____  > |__|  "
    @echo "             \/     \/        "
Run Code Online (Sandbox Code Playgroud)

当我运行它时,出现以下错误;

___________              __
\__    ___/___   _______/  |_
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
/bin/sh: -c: line 1: syntax error: unexpected end of file
make: *** [header] Error 2
Run Code Online (Sandbox Code Playgroud)

Ren*_*let 5

\您的问题来自外壳程序对字符的解释。你可以通过将它们全部加倍来逃避它们,或者你可以尝试这个,这可能更简单一些:

.PHONY: all

info: header

define HEADER
___________              __
\__    ___/___   _______/  |_
  |    |_/ __ \ /  ___/\   __\\
  |    |\  ___/ \___ \  |  |
  |____| \___  >____  > |__|
             \/     \/
endef
export HEADER

header:
    clear
    @echo "$$HEADER"
Run Code Online (Sandbox Code Playgroud)

注意:您仍然需要将\文本字符串行尾的 双重化,以避免它们被解释为续行。