Makefile中的语法错误:文件结束意外(期待"fi")

Kyl*_*een 4 bash makefile syntax-error

这是我的目标:

copy_python:
    if test -d $(VIRTUAL_ENV)/lib; then \
        cp -a $(VIRTUAL_ENV)/lib/python2.7/site-packages/. ./package/tmp/; \
    fi
    if test -d $(VIRTUAL_ENV)/lib64; then \
        cp -a $(VIRTUAL_ENV)/lib64/python2.7/site-packages/. ./package/tmp/; \ 
    fi
Run Code Online (Sandbox Code Playgroud)

这是错误:

/bin/sh: 2: Syntax error: end of file unexpected (expecting "fi")
Makefile:28: recipe for target 'copy_python' failed
make: *** [copy_python] Error 2
Run Code Online (Sandbox Code Playgroud)

为什么会出现此错误?

xhi*_*nne 8

在第二个cp命令结束时,在结束反斜杠后面有一个额外的空格.因此,\不再作为行继续,并且fi不会传递到下一行sh

  • 是的,它是第二行`cp`命令行尾的空格.我可以说,因为它实际上保存在粘贴的代码片段中!这就是为什么最好在问题中复制和粘贴代码,而不是重新输入. (2认同)