Как вернуть первый символ переменной в gmake - PullRequest
4 голосов
/ 13 сентября 2010

Используя GNU make, я бы хотел извлечь первый символ переменной.В настоящее время я использую функцию оболочки, чтобы bash выполнял подстроку.Я хочу знать, есть ли способ использовать встроенные модули gmake, чтобы сделать то же самое.

Ответы [ 2 ]

4 голосов
/ 14 сентября 2010

Это не очень приятно, и вам придется добавить к $(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 ...)..., чтобы команда оболочки вызывалась только один раз.

2 голосов
/ 14 сентября 2010

http://www.gnu.org/software/make/manual/make.html#Functions - это полный список всего, что вы можете сделать с помощью встроенных функций gmake.

Невозможно извлечь первый символ без $(shell), к сожалению.

...