在make中设置一个shell变量,以便稍后在同一行中使用



如果您在sh:中执行此操作

ABC=123 && echo value is ${ABC}

你得到这个了

value is 123

如果你把它放在makefile:中

main:
echo value is ${ABC}

(除了不要复制粘贴,因为我的标签实际上是四个空格(

然后将其传递到如下文件中:

$ ABC=123 make main
echo value is 123
value is 123

一切正常

但是我想在makefile 内的同一行设置sh变量

main:
ABC=123 && echo value is ${ABC}

我得到这个:

$ make main
ABC=123 && echo value is 
value is

如何设置shell变量?


我之所以尝试这样做,是因为我正在寻找一个文件。。这只是一个很小的例子,我认为它会起作用,但不会。

这是因为变量是由make而不是shell扩展的。你可以通过打印没有${ABC}的回波的第一行来判断。如果你想把美元符号传给shell,你需要引用它,例如:

$ cat Makefile
main:
ABC=123 && echo value is $${ABC}
$ make main
ABC=123 && echo value is ${ABC}
value is 123

最新更新