Linux &引用;意外操作员“;在bash脚本(regex)中

Linux &引用;意外操作员“;在bash脚本(regex)中,linux,bash,Linux,Bash,下面是我的简单代码: #!/bin/bash file="0.jpg" if [ $file =~ ^[0-9]+\.jpg$ ] ; then echo ':))))))' $file else echo ':(((( ' $file fi 正如你所看到的,这一切都很简单。但当我尝试运行它时,我得到了一个错误: /home/sa/Desktop/regex.sh: 4: [: 0.jpg: unexpected operator 我做错了什么以及

下面是我的简单代码:

#!/bin/bash

file="0.jpg"

if [ $file =~ ^[0-9]+\.jpg$ ] ; then

      echo ':))))))' $file

else    

      echo ':(((( ' $file

fi
正如你所看到的,这一切都很简单。但当我尝试运行它时,我得到了一个错误:

/home/sa/Desktop/regex.sh: 4: [: 0.jpg: unexpected operator

我做错了什么以及如何修复它?

正则表达式测试是bash特有的语法,因此必须使用关键字
[[
,而不是
[
,这是为了POSIX sh兼容性

谢谢你的回答。我找到了一种方法来运行我的脚本而不出现此错误。我所需要的就是使用它[[然后在终端中像这样运行脚本:sudobash/home/sa/Desktop/1.sh。我使用了“sudobash”而不是“sudosh”。