首页 > 解决方案 > shell touch 命令在 Makefile 中不起作用

问题描述

内部生成文件:

generate:
    touch file{1..10}

运行它make

我得到一个文件名 file{1..10} 而不是 10 个不同的文件。这些touch命令在 shell 上正常工作。

为什么?

标签: makefilegnu-make

解决方案


Make 调用在名为 的变量中指定的 shell SHELL。*nix 系统的默认值为SHELL=/bin/sh.

设置SHELL=/bin/bash(或其他)使其工作。

注意:与其他 make 的变量不同,SHELL' 的值永远不会从环境中导入(如果在 POSIX OS 下运行;这对于本机 Windows 构建不适用)。


推荐阅读