【发布时间】:2011-06-15 04:37:12
【问题描述】:
这多年来一直困扰着我。谁能解释为什么$(HOSTNAME) 没有扩展到环境值 HOSTNAME?谷歌搜索“make”、“hostname”、“gmake”、“not set”等的各种组合对我来说并没有什么收获。
jcomeau@intrepid:/tmp$ set | egrep 'HOSTNAME|USER'
HOSTNAME=intrepid
USER=jcomeau
jcomeau@intrepid:/tmp$ cat Makefile
%.test:
set | grep $*
%.env:
echo $($*)
jcomeau@intrepid:/tmp$ make HOSTNAME.test
set | grep HOSTNAME
BASH_EXECUTION_STRING='set | grep HOSTNAME'
HOSTNAME=intrepid
jcomeau@intrepid:/tmp$ make HOSTNAME.env
echo
jcomeau@intrepid:/tmp$ make USER.test
set | grep USER
BASH_EXECUTION_STRING='set | grep USER'
USER=jcomeau
jcomeau@intrepid:/tmp$ make USER.env
echo jcomeau
jcomeau
【问题讨论】:
标签: bash makefile environment-variables gnu-make