gpt4 book ai didi

bash - 循环的正则表达式条件在使用扩展测试时不起作用

转载 作者:行者123 更新时间:2023-12-04 08:46:58 24 4
gpt4 key购买 nike

我有一个基于正则表达式条件进行评估的循环:

until   read -p "Enter oprator: " operator
[[ $operator =~ ^[+-*\/]$ ]] #doesn't work
do...
循环将一直运行,直到用户输入算术运算符(+、-、* 或/)。当我输入这四个中的任何一个时,循环仍然运行。
我已经尝试过这种变体(即将正则表达式放在变量中,使用引号, grep )但似乎没有任何效果。

最佳答案

^[+-*\/]$ ]]$
这里的问题是放置一个未转义的 -在括号表达式的中间,它充当 + 之间的范围和 * .
您可以使用此正则表达式(无需在 BASH 正则表达式中转义 /):
[[ $operator =~ ^[-+*/]$ ]]
甚至更好 没有正则表达式 使用全局匹配:
[[ $operator == [-+*/] ]]

关于bash - 循环的正则表达式条件在使用扩展测试时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64268615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com