如果您在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