使用GNU的make,我想提取变量的第一个字符。目前我正在使用shell函数让bash
执行子字符串。我想知道是否有办法使用gmake的内置函数来做同样的事情。
DIR=/user/$(shell echo "$${USER:0:1}")/$(USER)/
答案 0 :(得分:4)
这不是很令人满意,你必须加$(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命令。
答案 1 :(得分:2)
http://www.gnu.org/software/make/manual/make.html#Functions是您可以使用gmake builtins执行的所有操作的完整列表。
不幸的是,似乎无法在没有$(shell)
的情况下提取第一个字符。