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