Вы можете просто использовать команду subst
с пустой сменной частью, чтобы удалить части вашего переменного содержимого, например:
apps := $(shell ls)
#add []
apps := [ $(apps) ]
$(info Apps: $(apps))
# replace [ with nothing -> remove it
apps := $(subst [ ,,$(apps))
# replace ] with nothing -> remove it
apps := $(subst ],,$(apps))
$(info Apps: $(apps))
или filer-out
с:
apps :=$(filter-out [ ], $(apps))
Вместо двух функций замены. Важно: держите space
между скобками, так как filter-out
нужен список слов. Итак, у вас есть 2 слова в шаблонной части команды здесь.
Выход:
Apps: [ a b c Makefile ]
Apps: a b c Makefile
Если у ввода нет пробела между [
и первым словом, вы должны использовать команду subst
.
Может быть, вы хотите объединить оба выражения в одно (но менее читаемое):
apps := $(subst ],,$(subst [,,$(apps)))