下面是我的makefile
LATEST_GIT_COMMIT_HASH := $(shell git rev-parse HEAD | cut -c1-8)
docker:
@echo "\n" &&\
read -p "Please enter a version number (ex: 0001): " release_vesion &&\
echo $$release_vesion_${LATEST_GIT_COMMIT_HASH}
我尝试从输入和git版本号中合并release_version,然后将它们打印出来。
但它似乎不起作用。
如何用输入值连接字符串?
答案 0 :(得分:1)
在bash中,您需要使用${var_name}concat_some_more_text
,花括号将变量与所连接字符串的其余部分分开。例如:
var_name=bob
echo "1: $var_nameconcat_some_more_text"
echo "2: ${var_name}concat_some_more_text"
返回:
1:
2: bobconcat_some_more_text
因此您的代码应如下所示:
LATEST_GIT_COMMIT_HASH := $(shell git rev-parse HEAD | cut -c1-8)
docker:
@echo "\n" &&\
read -p "Please enter a version number (ex: 0001): " release_vesion &&\
echo "release ver: $$release_vesion" ; \
echo "$${release_vesion}_$(LATEST_GIT_COMMIT_HASH)"
在使用中,$${...}
用于bash变量(您已经正确使用了双$而不是大括号),而$(...)
用于make变量。您不一定总是需要bash变量的花括号,但是在将变量名连接到另一个字符串时,确实需要它们将它们分开。