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”。