gpt4 book ai didi

bash - 无法让 "=~"工作。继续获取 "[: =~: binary operator expected"

转载 作者:行者123 更新时间:2023-12-04 10:27:45 33 4
gpt4 key购买 nike

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

去年关闭。




Improve this question




当我尝试使用 if [ "$1" =~ "$regex" ]; then
我不断返回同样的错误:[: =~: binary operator expected
这是我收到错误的示例函数:

char_check() {
regex='^[]0-9a-zA-Z,!^`@{}=().;/~_|[-]*$'
if [ "$1" =~ "$regex" ]; then
echo "No illegal characters."
else
echo "Illegal characters."
fi
}

任何回应都会有很大帮助。

最佳答案

正则表达式需要 [[ expression ]]man page of bash 所示.

此外,您不得引用正则表达式本身,例如你应该更喜欢 $regex"$regex"

char_check() {
regex='^[]0-9a-zA-Z,!^`@{}=().;/~_|[-]*$'
if [[ "$1" =~ $regex ]]; then
echo "No illegal characters."
else
echo "Illegal characters."
fi
}

如果您引用正则表达式,那么您正在尝试匹配字符串,而不是模式。换句话说,它将匹配奇怪的字符串 '^[]0-9a-zA-Z,!^`@{}=().;/~_|[-]*$'

关于bash - 无法让 "=~"工作。继续获取 "[: =~: binary operator expected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60561637/

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