在bash 4及以上版本中,如果想将存储在变量中的字符串的第一个字母大写,可以执行以下操作:
L1=en
Ll1=${L1^}
echo $Ll1
这将打印出En
。
我正在尝试在Makefile中做类似的事情,但我无法让${L1^}
语法起作用。
SHELL := /bin/bash
L1 = en
Ll1 := $(shell echo ${L1^})
all:
@echo $(Ll1)
产生空白输出。
我能否使用这种bash语法使其工作,而不需要使用tr/sed?
P.S. 我确实需要将其分配给一个变量,而不是直接回显它。我正在使用bash 4.3.48和GNU make 4.1。
$(shell echo $${$(L1)^})
- user657267