gpt4 book ai didi

bash - 在 Makefile 中使用 bash 变量

转载 作者:行者123 更新时间:2023-11-29 09:30:04 25 4
gpt4 key购买 nike

我想在我的 makefile 中使用 bash 计时变量例如在我的终端我可以这样做并且它有效

 MY_TIME=$SECONDS 
echo $MY_TIME

但是当我在我的 makefile 中写这个时它不起作用

如何在我的 make 文件中使用这两行?

这就是我在做的事情

.PHONY: myProg
myProg:
MY_TIME=$SECONDS
echo $MY_TIME

在 Etan Reisner 的回答之后

这是我现在拥有的

.PHONY: myProg
myProg:
MY_TIME= date; echo $MY_TIME

但是我的回显结果是一个空行,它看起来不像是在存储日期

最佳答案

美元符号 ($MY_TIME) 指的是 make 变量,它与 bash 变量 不同。

要访问 bash 变量,您必须使用双美元表示法 ($$MY_TIME) 对美元进行转义。

.PHONY: myProg
myProg:
MY_TIME=$$SECONDS ; echo $$MY_TIME

Etan answer 中所述您不能将代码分成多行(除非您使用反斜杠),因为每个命令都在不同的子 shell 中执行,使得其他行无法访问变量。

在下面的示例中,SECONDS 的值将始终为 0,因为它会在第二行的 shell 生成时重置。

.PHONY: myProg
myProg: # WRONG
MY_TIME=$$SECONDS
echo $$MY_TIME

关于bash - 在 Makefile 中使用 bash 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com