免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11382 | 回复: 8

[文本处理] shell中怎么判断变量是不是以字母开头的 [复制链接]

论坛徽章:
0
发表于 2015-09-29 17:16 |显示全部楼层
想要判断一个变量,如果这个变量是以小写字母开头的,就输出这个变量,请问下面这个为什么什么也不输出~~~~~~~~~~~~~~~
#!/bin/bash
aa=backup
if [[ $aa == "^[a-z]*" ]]
then
echo $aa
fi


论坛徽章:
20
卯兔
日期:2015-01-26 22:05:142015亚冠之萨济拖拉机
日期:2015-09-10 15:15:282015亚冠之阿尔希拉尔
日期:2015-09-25 17:37:53程序设计版块每日发帖之星
日期:2015-10-03 06:20:00程序设计版块每日发帖之星
日期:2015-12-09 06:20:00CU十四周年纪念徽章
日期:2015-12-17 09:07:15程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:342015亚冠之广州富力
日期:2015-08-27 19:29:56每日论坛发贴之星
日期:2015-08-26 06:20:002015亚冠之阿尔希拉尔
日期:2015-05-18 17:26:27
发表于 2015-09-29 17:30 |显示全部楼层
使用    =~

论坛徽章:
0
发表于 2015-09-29 17:37 |显示全部楼层
不行啊,没有结果输出
[:c10user:/home/TT_DB/ttingtest/ttingtest1]$ cat li
#!/bin/bash
a=backup
if [[ $a =~ "^[a-z]*" ]]
then
echo $a
fi

[:c10user:/home/TT_DB/ttingtest/ttingtest1]$ li
[:c10user:/home/TT_DB/ttingtest/ttingtest1]$



回复 2# songyc_2015


   

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
发表于 2015-09-29 18:18 |显示全部楼层
  1. #!/bin/bash
  2. a="backup"
  3. if [[ "$a" =~ ^[a-z]* ]];then
  4. echo "$a"
  5. else
  6. echo "no"
  7. fi
复制代码

论坛徽章:
0
发表于 2015-09-29 21:04 |显示全部楼层
感觉不对啊,a的值改成123backup,然后输出123backup,没有遵循以a-z字母开通的原则:
[:c10user:/home/TT_DB/ttingtest/ttingtest1]$ cat li
#!/bin/bash
a="123backup"
if [[ "$a" =~ ^[a-z]* ]];then
echo "$a"
else
echo "no"
fi

[:c10user:/home/TT_DB/ttingtest/ttingtest1]$ li
123backup



回复 4# wh7211


   

论坛徽章:
7
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:18程序设计版块每日发帖之星
日期:2015-08-09 06:20:00每日论坛发贴之星
日期:2015-08-09 06:20:00程序设计版块每日发帖之星
日期:2015-08-22 06:20:00程序设计版块每日发帖之星
日期:2015-08-27 06:20:00
发表于 2015-09-29 21:11 |显示全部楼层
不知道我说没说清楚
  1. [jay.liu@aliCloud ~]$ aa=\^\[a\-z\]\*
  2. [jay.liu@aliCloud ~]$ echo $aa
  3. ^[a-z]*
  4. [jay.liu@aliCloud ~]$ if [[ $aa == "^[a-z]*" ]]
  5. > then
  6. > echo $aa
  7. > fi
  8. ^[a-z]*

  9. [jay.liu@aliCloud ~]$ echo $aa
  10. test
  11. [jay.liu@aliCloud ~]$ if [[ $aa =~ ^[a-z]* ]]; then echo Y; else echo N; fi
  12. Y
  13. [jay.liu@aliCloud ~]$ if [[ $aa =~ "^[a-z]*" ]]; then echo Y; else echo N; fi
  14. N
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2015-09-29 21:11 |显示全部楼层
回复 5# lostoasis


$ a="backup"; if [[ "$a" =~ ^[a-z] ]];then echo $a; fi
backup

$ a="123backup"; if [[ "$a" =~ ^[a-z] ]];then echo $a; fi

$ a="backup"; if [[ "$a" =~ ^[a-z]+$ ]];then echo $a; fi
backup

$ a="backup123"; if [[ "$a" =~ ^[a-z]+$ ]];then echo $a; fi
   

论坛徽章:
22
处女座
日期:2014-10-11 13:33:292015亚冠之塔什干火车头
日期:2015-07-20 19:59:042015亚冠之塔什干火车头
日期:2015-07-26 10:59:31程序设计版块每日发帖之星
日期:2015-08-05 06:20:00每日论坛发贴之星
日期:2015-08-05 06:20:00程序设计版块每日发帖之星
日期:2015-08-07 06:20:00每日论坛发贴之星
日期:2015-08-07 06:20:002015亚冠之阿尔纳斯尔
日期:2015-10-01 15:23:28白银圣斗士
日期:2015-12-07 17:17:06操作系统版块每日发帖之星
日期:2015-12-27 06:20:002015亚冠之广州富力
日期:2015-07-08 15:48:31程序设计版块每日发帖之星
日期:2015-06-11 22:20:00
发表于 2015-10-01 15:25 |显示全部楼层
本帖最后由 聆雨淋夜 于 2015-10-01 15:26 编辑

用+别用*,*能匹配到0个字符

用+别用*,*能匹配到0个字符
回复 5# lostoasis

用+不能用*  *能匹配到0个字符,在你的例子中用*就毫无意义了


   

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
发表于 2016-02-21 17:45 |显示全部楼层
回复 5# lostoasis
把*换成+,比如:"$a" =~ ^[a-z]+


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP