免费注册 查看新帖 |

Chinaunix

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

[系统管理] 为何无法输出数值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-28 09:56 |只看该作者 |倒序浏览
写个shell 语句,需要判断os的版本是el5还是el6。
uname -a|grep el5&&VERSION=5||(uname -a|grep el6&&VERSION=6&&VERSION=0)

在5上面测试正常
[root@vmrhel01 ~]# uname -a|grep el5&&VERSION=5||(uname -a|grep el6&&VERSION=6&&VERSION=0)
Linux vmrhel01 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
[root@vmrhel01 ~]# echo $VERSION
5

在6上面测试失败
[root@lxtmpf01 ~]# uname -a|grep el5&&VERSION=5||(uname -a|grep el6&&VERSION=6&&VERSION=0)
Linux lxtmpf01 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@lxtmpf01 ~]# echo $VERSION

[root@lxtmpf01 ~]#

这是为什么啊

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
2 [报告]
发表于 2014-09-28 10:15 |只看该作者
本帖最后由 bulletmarquis 于 2014-09-28 10:16 编辑

回复 1# 338378WN8




大括小括傻傻分不清楚


另外括号里面两个&&是几个意思?

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
3 [报告]
发表于 2014-09-28 10:34 |只看该作者
回复 1# 338378WN8

把括号去掉。另外后面两次&&
   

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
4 [报告]
发表于 2014-09-28 10:59 |只看该作者
本帖最后由 bulletmarquis 于 2014-09-28 11:00 编辑

回复 1# 338378WN8

    用小括号,是在子进程里面操作,你在子进程里面给变量赋值,哪里能读的到。。。
  1. uname -a|grep el5&&VERSION=5||{ uname -a|grep el6&&VERSION=6||VERSION=0; };echo $VERSION
复制代码

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
5 [报告]
发表于 2014-09-28 11:01 |只看该作者
shell>  uname -r | sed -r 's/.*el(.).*/\1/'
6

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
6 [报告]
发表于 2014-09-28 11:03 |只看该作者
回复 5# chengchow


    风险大大的

    如果uname -r匹配不到这个el,怎么破

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
7 [报告]
发表于 2014-09-28 11:23 |只看该作者
本帖最后由 chengchow 于 2014-09-28 11:25 编辑

回复 6# bulletmarquis

无论你怎么写也无法匹配所有的版本
比如说我用gentoo uname -r内容是"内核版本号-gentoo",怎么都匹配不出来
...
如果仅仅是想看redhat/centos的版本号,没那么麻烦/etc/redhat-release记录的就是帽子党系统的版本号
你匹配这个文件更容易点,匹配数字开头到数字结尾的就可以了
grep -Po '[0-9]+\.[0-9]*|[0-9]+' /etc/redhat-release
5.5
   

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
8 [报告]
发表于 2014-09-28 11:29 |只看该作者
回复 7# chengchow


    其实LZ的需求还是很单纯的,只要求在匹配不到的时候设为VERSION=0

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
9 [报告]
发表于 2014-09-28 11:40 |只看该作者
回复 8# bulletmarquis

这个确实没留意LZ意向!以为LZ想获取版本号,顺手写了个
   

论坛徽章:
0
10 [报告]
发表于 2014-09-28 11:52 |只看该作者
谢谢各位dada
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP