【问题标题】:How to extract an nth word from a variable and assign it to another variable in a makefile如何从变量中提取第 n 个单词并将其分配给 makefile 中的另一个变量
【发布时间】:2015-01-25 00:09:27
【问题描述】:

我的 makefile 有:

 debug:
    W1 := foo bar cat

我想提取每个单词 foo、bar 和 cat 并得到如下输出:

v1=foo

v2=bar

v3=cat

我试过了:

W1 :=foo bar cat

v1 :=$(word 1, $$(W1))

v2 :=$(word 2, $$(W1))

v3 :=$(word 3, $$(W1))

debug:

     @echo "${v1}"
     @echo "${v2}"
     @echo "${v3}"

没有按照我想要的方式工作。请帮忙

【问题讨论】:

  • 为什么要使用双美元符号?这只是告诉 make 不要扩大价值,所以你肯定不会得到你想要的。使用$(word 2,$(W1))
  • 此外,由于变量是 make(而不是 shell)变量,您可以在规则正文中使用 echo '${v1}'(或 echo '$(v1)',这是我的偏好),而不是使用双引号。
  • @MadScientist,谢谢,单美元有效。感谢 Etan 的建议。

标签: makefile


【解决方案1】:

(在评论中回答。见Empty InfoWindow when Marker is clicked

@MadScientist 写道:

为什么要使用双美元符号?这只是告诉 make 不要扩大价值,所以你肯定不会得到你想要的。使用$(word 2,$(W1))等。

@Etan Reisner 写道:

此外,由于变量是 make(而不是 shell)变量,您可以在规则正文中使用 echo '${v1}'(或 echo '$(v1)',这是我的首选),而不是使用双引号。

【讨论】:

    猜你喜欢
    • 2023-01-09
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多