如何在Makefile的if语句中使用正则表达式?

3

我只是想提示并获取一些输入,然后在makefile中根据该输入采取行动。

我需要检查输入是否为“Y”或“y”。其他任何内容都应该退出。

目前我有以下代码,它可以工作,但有点冗长。我希望通过使用简单的正则表达式使其更加简洁:

if [ "$$INSTALL_GLOBALS" != "y" ] && [ "$$INSTALL_GLOBALS" != "Y" ]; then \
1个回答

2
使用正则表达式字符类。
if [[ "$$INSTALL_GLOBALS" =~ ^[Yy]$ ]]

^在正则表达式中表示我们正在匹配行的开头,$表示我们正在匹配行的结尾。[yY]匹配一个字符,无论它是大写字母Y还是小写字母y


这基本上是我尝试的,但我遇到了语法错误。https://gist.github.com/SeerUK/cbfee9b01b449586885a - Seer
你必须在 ]] 前面留出空格。 - Avinash Raj
1
啊!就是这个问题,它把"$"当成变量并去掉了它和空格。 - Seer
1
$ 转义为 $$ 稍微好一点...但也不是很好。 - Richard A Quadling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接