makefile - shell touch 命令在 Makefile 中不起作用
问题描述
内部生成文件:
generate:
touch file{1..10}
运行它make
我得到一个文件名 file{1..10} 而不是 10 个不同的文件。这些touch
命令在 shell 上正常工作。
为什么?
解决方案
Make 调用在名为 的变量中指定的 shell SHELL
。*nix 系统的默认值为SHELL=/bin/sh
.
设置SHELL=/bin/bash
(或其他)使其工作。
注意:与其他 make 的变量不同,SHELL
' 的值永远不会从环境中导入(如果在 POSIX OS 下运行;这对于本机 Windows 构建不适用)。