regex - Make:使用正则表达式检测平台
问题描述
我正在编写一个查看uname 输出的makefile,但由于某种原因,uname 系统名称过于具体,例如它是CYGWIN-NT-1.2.3。我需要将其与正则表达式进行比较。
目前我只能检测到特定的字符串,例如
ifeq (${value},CYGWIN-NT-4.5)
do something
elif
如何与正则表达式(例如 CYGWIN*)进行比较?
解决方案
您不能在 GNU make 中使用正则表达式(不使用shell
或类似调用处理正则表达式的 shell 脚本)。
但是您不需要正则表达式来进行您正在寻找的比较,这只是为了查看该值是否以给定的字符串开头。您可以使用过滤功能:
ifneq (,$(filter CYGWIN%,$(value)))
...on cygwin...
endif
推荐阅读
- java - Intellij Plugin Configurable 中的标题分隔符
- android - 处理第一个连接后无法重新启动扫描
- python - 如何将 matplotlib 图形组合成多个子图?
- python - 如何用numpy在矩阵中制作斐波那契数?
- java - 尝试使用 GraphicsContext 方法 Public void fill 和 strokepolygon 以绘制正多边形
- python - 如何更改时区?
- javascript - React:如何防止 setInterval 在单击按钮启动后延迟?
- r - 为什么 lubridate::ymd_hms 不适用于非常特定的日期时间?
- cookies - jessessionId cookie 的 Samesite 只能从响应中设置
- r - 使用适合不同组的模型对一组进行寓言预测结果