代码之家  ›  专栏  ›  技术社区  ›  brianegge

如何在gmake中返回变量的第一个字符

  •  4
  • brianegge  · 技术社区  · 14 年前

    使用GNU的make,我想提取变量的第一个字符。目前我正在使用shell函数 bash 执行子字符串。我想知道是否有一种方法可以使用gmake的内置来做同样的事情。

    DIR=/user/$(shell echo "$${USER:0:1}")/$(USER)/
    
    2 回复  |  直到 14 年前
        1
  •  4
  •   John Marshall    14 年前

    这不是很令人满意,你得加上 $(INITIALS) 直到你高兴,但是:

    INITIALS := a b c d e f g h i j k l m n o p q r s t u v w x y z
    U := $(strip $(foreach a,$(INITIALS),$(if $(USER:$a%=),,$a)))
    
    DIR = /user/$(U)/$(USER)/
    

    也许明智的做法是注意到 := 在上面的用法,并修改您的简单版本 DIR := ...$(shell ...)... 所以shell命令只被调用一次。

        2
  •  2
  •   zwol    14 年前

    http://www.gnu.org/software/make/manual/make.html#Functions 是一个全面的清单,你可以做的一切与gmake内置。

    似乎无法提取第一个字符 $(shell) 很不幸。