首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使文件回显显示"$PATH“字符串

使文件回显显示"$PATH“字符串
EN

Stack Overflow用户
提问于 2010-09-14 17:15:59
回答 2查看 219.2K关注 0票数 52

我正在尝试强制make file显示下一个字符串:

代码语言:javascript
复制
"Please execute next commands:
setenv PATH /usr/local/greenhills/mips5/linux86:$PATH"

问题出在"$PATH"上。命令

代码语言:javascript
复制
@echo "setenv PATH /usr/local/greenhills/mips5/linux86:$PATH"

导致一个结果

代码语言:javascript
复制
"setenv PATH /usr/local/greenhills/mips5/linux86:ATH"

转义字符、引号、"$(shell echo "的任何组合都未获得所需的结果...

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-24 22:38:04

manual for GNU make中,他们在描述value函数时谈到了这个特定的示例:

value函数为您提供了一种在不扩展变量的情况下使用变量值的方法。请注意,这不会撤消已经发生的扩展;例如,如果您创建了一个简单的扩展变量,它的值将在定义期间扩展;在这种情况下,value函数将返回与直接使用该变量相同的结果。

value函数的语法为:

$(值变量)

请注意,variable是变量的名称,而不是对该变量的引用。因此,您通常不会在编写它时使用‘$’或括号。(但是,如果希望名称不是常量,则可以在名称中使用变量引用。)

此函数的结果是一个包含变量值的字符串,没有任何扩展。例如,在此makefile中:

FOO = $PATH all:@echo $(FOO) @echo $(值FOO)

第一个输出行将是ATH,因为“$P”将作为make变量展开,而第二个输出行将是$PATH环境变量的当前值,因为value函数避免了展开。

票数 57
EN

Stack Overflow用户

发布于 2010-09-14 17:37:18

make$用于其自己的variable expansions。例如,单字符变量$A或具有长名称的变量- ${VAR}$(VAR)

要将$放入命令中,请使用$$,例如:

代码语言:javascript
复制
all:
  @echo "Please execute next commands:"
  @echo 'setenv PATH /usr/local/greenhills/mips5/linux86:$$PATH'

还要注意,对于make""'' (双引号和单引号)不起任何作用,它们被逐字传递给shell。(去掉@符号,查看make发送到外壳的内容。)为了防止外壳程序扩展$PATH,第二行使用''

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3707517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档