语法错误==运算符

问题描述 投票:1回答:4

当我运行此脚本时:

#!/bin/bash

if [[ "abcd" =~ ^.*$ ]]; then
    echo "something"
fi

我得到:

./tmp2.sh: line 3: conditional binary operator expected
./tmp2.sh: line 3: syntax error near `=~'
./tmp2.sh: line 3: `if [[ "abcd" =~ ^.*$ ]]; then'

我已经尝试了所有发现的建议,但仍然相同:/请帮帮我!

regex bash shell operator-keyword conditional-operator
4个回答
6
投票
鉴于您正在看到

bash特定的错误消息,我们可以rule out something [[other比bash]正在运行脚本(如果一个仅具有POSIX功能的外壳,例如在某些系统上为sh,您将看到与[[相关的错误消息。

最可能的解释:

您的

    bash版本是< 3.0
,因此不支持=~运算符。
  • 要进行验证,请在脚本中运行echo $BASH_VERSION
    • 您所看到的特定错误是bash的表达方式:“我看到了一个我不识别为运算符的字符串。”

    3
    投票

    1
    投票
    re='^.*$' if [[ "abcd" =~ $re ]]; then echo "something" fi

    -1
    投票
    © www.soinside.com 2019 - 2024. All rights reserved.