首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在make中拆分字符串?

如何在make中拆分字符串?
EN

Stack Overflow用户
提问于 2011-12-17 05:40:03
回答 1查看 25.9K关注 0票数 34

我需要在Makefile中接受一个参数,该参数由一个主机标识符组成,格式为

代码语言:javascript
复制
host[:port]

其中冒号和端口是可选的。因此,以下所有内容都是有效的:

代码语言:javascript
复制
foo.example.com
ssl.example.com:443
localhost:5000

等。

我想拆分可选冒号上的字符串,并将值分配给变量,这样HOST包含foo.example.comssl.example.comlocalhost等,而PORT分别包含80 (默认端口)、443和500。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-17 06:07:34

代码语言:javascript
复制
# Retrieves a host part of the given string (without port).
# Param:
#   1. String to parse in form 'host[:port]'.
host = $(firstword $(subst :, ,$1))

# Returns a port (if any).
# If there is no port part in the string, returns the second argument
# (if specified).
# Param:
#   1. String to parse in form 'host[:port]'.
#   2. (optional) Fallback value.
port = $(or $(word 2,$(subst :, ,$1)),$(value 2))

用法:

代码语言:javascript
复制
$(call host,foo.example.com) # foo.example.com
$(call port,foo.example.com,80) # 80

$(call host,ssl.example.com:443) # ssl.example.com
$(call port,ssl.example.com:443,80) # 443
票数 54
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8540485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档