从Makefile执行shell脚本的问题

时间:2011-06-28 16:59:12

标签: makefile gnu-make

生成文件:

$(shell ./test.sh)

第一个实验:test.sh

echo "hi"

我得到错误:

Makefile:1: *** missing separator.  Stop.

第二次实验: test.sh

echo("hi")

我得到的错误:

./test.sh: line 1: syntax error near unexpected token `"hi"' 
./test.sh: line 1: `echo("hi")'

没有任何意义......看起来'Make'试图将其语法强加于shell脚本,但shell脚本也需要它自己。

1 个答案:

答案 0 :(得分:6)

尝试./test.sh

在第一个实验中,结果是

hi

当您运行make时,行$(shell ./test.sh)评估为hi,其中Make不知道如何解释。

在第二个实验中,

./test.sh: line 1: syntax error near unexpected token `"hi"'
./test.sh: line 1: `echo("hi")'

您编写的shell脚本没有正确的shell语法,因此失败了。无论你是运行它还是Make运行它都会失败。