Chinaunix

标题: 为什么报错呢 [打印本页]

作者: yfjelley    时间: 2012-10-20 10:44
标题: 为什么报错呢
本帖最后由 yfjelley 于 2012-10-20 11:02 编辑

for i in "$@"
do
    if [ "$i" =~ /^-j[1-9]$/ ];then
        a = "$i"
    fi
done

yangfeng@sbuild:~/msm$ ./test.sh -j8
./test.sh: line 4: [: =~: binary operator expected

正则表达式匹配 -j8
作者: dn833    时间: 2012-10-20 16:27
  1. if [ "$i" =~ /^-j[1-9]$/ ];then
复制代码
改成
  1. if [[ "$i" =~ /^-j[1-9]$/ ]];then
复制代码
如果还报错那就是shell版本太低了,bash --version看看吧
作者: blackold    时间: 2012-10-20 17:09
本帖最后由 blackold 于 2012-10-20 17:09 编辑

回复 2# dn833


    对,应该用[[ ]]
作者: yfjelley    时间: 2012-10-21 07:47
回复 2# dn833
【】和【【】】的区别是什么呢?
什么时候
要用【】什么时候又要用【【】】?
   
作者: blackold    时间: 2012-10-21 07:57
回复 4# yfjelley


    区别很多!
[]是内置命令,[[ ]]是复合命令。
二者的操作符不一样。

什么用?要看你的要求了。
作者: yfjelley    时间: 2012-10-23 00:01
回复 5# blackold

有这个用法的文章吗?
   
作者: blackold    时间: 2012-10-23 00:05
回复 6# yfjelley


    bash man里面有说明啊。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2