免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8355 | 回复: 12
打印 上一主题 下一主题

[文本处理] [[ : not found 为什么? 一直不明白 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-10 13:48 |只看该作者 |倒序浏览
问个小白问题:
   例如
         #! /bin/bash
              i='sdgfdg'
             if   [[  "$i"  =~  ^s*g$ ]];  then
                           echo "yes"
                   else
                          echo  "no"
               fi
为什么显示   [[: not found
bash 版本:4.2.24

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
2 [报告]
发表于 2013-04-10 13:58 |只看该作者
if   [[  "$i"  =~  ^s*g$  ]];  then

论坛徽章:
0
3 [报告]
发表于 2013-04-10 14:02 |只看该作者
  1. #! /bin/bash
  2.               i="sdgfdg"
  3.              if [[ "$i" =~ "^s.*g$" ]];then
  4.                           echo "yes"
  5.                    else
  6.                           echo  "no"
  7.              fi
复制代码
你的正则写得也有问题

论坛徽章:
0
4 [报告]
发表于 2013-04-10 14:08 |只看该作者
本帖最后由 ooooldman 于 2013-04-10 14:08 编辑
  1. [root@localhost ~]# bash --version
  2. bash --version
  3. GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
  4. Copyright (C) 2005 Free Software Foundation, Inc.
  5. echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
  6. [root@localhost ~]# cat t
  7. cat t
  8.          #! /bin/bash
  9.               i='sdgfdg'
  10.              if   [[  "$i"  =~  ^s*g$ ]];  then
  11.                            echo "yes"
  12.                    else
  13.                           echo  "no"
  14.                fi
  15. echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
  16. [root@localhost ~]# bash t
  17. bash t
  18. no
  19. echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
5 [报告]
发表于 2013-04-10 14:14 |只看该作者
直接复制你的代码在我这里运行是没问题的,没有报错。另外,如果你希望输出的结果是yes的话,要把^s*g$改成^s.*g$

@peawseshc
^s.*g$不要加上双引号。

论坛徽章:
0
6 [报告]
发表于 2013-04-10 15:19 |只看该作者
yestreenstars 发表于 2013-04-10 14:14
直接复制你的代码在我这里运行是没问题的,没有报错。另外,如果你希望输出的结果是yes的话,要把^s*g$改成 ...


我查看了ABS,双引号也可以加的

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
7 [报告]
发表于 2013-04-10 15:40 |只看该作者
回复 6# peawseshc


    那你有执行过你那段代码吗?结果正确吗?

论坛徽章:
0
8 [报告]
发表于 2013-04-10 15:43 |只看该作者
回复 7# yestreenstars


    执行过:
  1. [root@localhost ~]# cat test.sh
  2. #! /bin/bash
  3.               i="sdgfdg"
  4.              if [[ "$i" =~ "^s.*g$" ]];then
  5.                           echo "yes"
  6.                    else
  7.                           echo  "no"
  8.              fi
  9. [root@localhost ~]# sh test.sh
  10. yes
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
9 [报告]
发表于 2013-04-10 15:47 |只看该作者
回复 8# peawseshc


    原封不动的复制粘贴:
  1. [root@localhost ~]# cat t
  2. #! /bin/bash
  3.               i="sdgfdg"
  4.              if [[ "$i" =~ "^s.*g$" ]];then
  5.                           echo "yes"
  6.                    else
  7.                           echo  "no"
  8.              fi
  9. [root@localhost ~]# sh t
  10. no
  11. [root@localhost ~]# bash --version
  12. GNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu)
  13. Copyright (C) 2009 Free Software Foundation, Inc.
  14. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

  15. This is free software; you are free to change and redistribute it.
  16. There is NO WARRANTY, to the extent permitted by law.
复制代码

论坛徽章:
0
10 [报告]
发表于 2013-04-10 15:50 |只看该作者
回复 9# yestreenstars

可能是版本的问题,我还是上图吧

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP