有沒有更好的方式來獲得一個GNU make
變量的第一個字符不是得到一個make變量的第一個字母
FIRST=$(shell echo $(VARIABLE) | head -c 1)
(這不僅笨重,而且調用外殼)?
有沒有更好的方式來獲得一個GNU make
變量的第一個字符不是得到一個make變量的第一個字母
FIRST=$(shell echo $(VARIABLE) | head -c 1)
(這不僅笨重,而且調用外殼)?
的GNU Make Standard Library提供了substr
功能
SUBSTR
Arguments: 1: A string
2: Start offset (first character is 1)
3: Ending offset (inclusive)
Returns: Returns a substring
我沒有測試它,但$(call substr,$(VARIABLE),1,1)
應該工作
我認爲應該是'$(call substr,$(VARIABLE),1,1)'。 –
gmsl似乎不適用於automake。在添加'include gmsl'行之後,我得到了一些關於if/else/endif不匹配的錯誤。 –
@CraigMcQueen,1)哎呀,謝謝,修正。 2)不能幫助你,對不起 –
因爲我在自己的搜索過這個來了,並沒有發現什麼,我一直在尋找這裏是我結束了使用解析,可以適用於任何已知的字符集的十六進制數
letters := 0 1 2 3 4 5 6 7 8 9 a b c d e f
nextletter = $(strip $(foreach v,$(letters),$(word 2,$(filter $(1)$(v)%,$(2)) $v)))
然後
INPUT := 40b3
firstletter := $(call nextletter,,$(INPUT))
secondletter := $(call nextletter,$(firstletter),$(INPUT))
thirdletter := $(call nextletter,$(firstletter)$(secondletter),$(INPUT))
等
這是醜陋的,但它的外殼不可知
GNU make有沒有內置SUBST環功能,所以我不認爲這很容易或明顯。也許你可以想出一些涉及'$(patsubst)'的東西,但我無法做到。 – tripleee
可能的重複:http://stackoverflow.com/questions/3703881/how-to-return-the-first-character-of-a-variable-in-gmake –