gpt4 book ai didi

makefile - 使用makefile时如何转义变量中的特殊字符?

转载 作者:行者123 更新时间:2023-12-03 06:31:10 29 4
gpt4 key购买 nike

假设我有一个带有 show 方法的 makefile

show::
echo $(VAR)

执行make VAR=foobar show时,会按预期输出foobar

但是,当 VAR 是一些哈希字符串(例如 $2y$10$Gae9mVS)时,一切都会出错。

make VAR=$2y$10$Gae9mVS show 显示 y0,但不显示 $2y$10$Gae9mVS

有人能给我一些提示吗?谢谢。

最佳答案

这里有两个(实例)该问题。它们都与 make 没有任何关系。

尝试 echo VAR=$2y$10$Gae9mVS 看看会得到什么。

现在尝试echo 'VAR=$2y$10$Gae9mVS'

然后尝试显示“VAR=$2y$10$Gae9mVS”

然后在 echo '$(VAR)' 行中添加单引号,并再次尝试 make 'VAR=$2y$10$Gae9mVS' show

简而言之:

引用您的变量。

正如评论中所指出的,这里还有一个额外的问题,这个问题实际上与 make 有关。

当您要求 make 扩展 $(VAR) 时,它会递归地扩展变量,并将值中的 $ 视为要扩展的变量。

您可以使用 echo '$(value VAR)' 来避免这种情况,或者使用 make 'VAR=$$2y$$10$$Gae9mVS' show 来转义$ 来自 make 本身。

不幸的是,我不确定您是否可以以透明的方式做到这一点。也就是说,它要求您知道如何使用该变量(尽管在 make 中使用的任何变量本身都会有这种扩展问题),或者知道您的变量不需要在使用站点递归扩展。

关于makefile - 使用makefile时如何转义变量中的特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27414370/

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