linux - 生成文件错误 : syntax error: unexpected word (expecting "fi")

标签 linux makefile gnu-make

我对 Makefile 的以下部分有疑问:

if [ -d "$(MODLOOP_FIRMWARE_EXTERNAL)" ]; then \
    if [ ! -e "$(MODLOOP_DIR)"/lib/firmware ]; then \
        mkdir -p "$(MODLOOP_DIR)"/lib/firmware; \
    fi \
    cp -r "$(MODLOOP_FIRMWARE_EXTERNAL)"/* "$(MODLOOP_DIR)"/lib/firmware/; \
fi

make SHELL='sh -x':

if [ -d "/mnt/firmware" ]; then \
    if [ ! -e "/mnt/build-env"/lib/firmware ]; then \
        mkdir -p "/mnt/build-env"/lib/firmware; \
    fi \
    cp -r "/mnt/firmware"/* "/mnt/build-env"/lib/firmware/; \
fi
sh: syntax error: unexpected word (expecting "fi")

如果我删除该行:

cp -r "/mnt/firmware"/* "/mnt/build-env"/lib/firmware/;\

它会工作,但我看不出问题是什么。

我做错了什么?

最佳答案

你应该在第四行的fi之后加上;

关于linux - 生成文件错误 : syntax error: unexpected word (expecting "fi"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34705943/

相关文章:

c - 如何摆脱 perf 中的 "unknown"部分

linux - 从 Linux 内核模块执行 copy_to_user 时出现 "Bad Address"错误

linux - arm-none-eabi 命令将无法正确安装

c++ - 如何使用 GNU Make 从同一源代码编译程序的第二个版本?

makefile - 获取目标的依赖项列表

linux - 刷新CPU缓存而不使缓存失效?

linux - 使用 ffmpeg 和 red5 直播预先录制的 flv 视频

android - cmake中生成asm文件后调用shell命令

bash - 如何正确转义 Makefile 的数据?

带有 LaTeX 目录的 Makefile