免费注册 查看新帖 |

Chinaunix

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

[文本处理] 字符串比较问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-10 16:58 |只看该作者 |倒序浏览
本帖最后由 jadonmust 于 2014-11-10 17:27 编辑

比如键盘录入一个用户,如果UID为0则显示为admin;否则显示user
我的方法:
           
           #read -p "please input your account:" Username
           please input your account:test(键盘录入)
           #echo $Username
             test
           
           #cat /etc/passwd
            test:5004:5005:TEST:/home/test:/bin/bash
         
           #[[ "0"=="`grep "^$Username" /etc/passwd | cut -d: -f3`" ]] && echo "The account is admin" || echo "The account is user"
           
           显示The account is admin

           
          键盘输入root时,最后显示The account is admin。
          键盘输入test时,最后也是显示The account is admin。
         
          #[[ "0"=="`grep "^$Username" /etc/passwd | cut -d: -f3`" ]] && echo "The account is admin" || echo "The account is user"这句话哪错了?

          为什么,求高人解答。



解决了,OK。
正确的是

[[ 空格"0"空格==空格"`grep "^$Username" /etc/passwd | cut -d: -f3`"空格 ]] & ...


第二个空格和第三的空格没写。

可是没有第二个空格和第三的空格也没报错呀?

论坛徽章:
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
2 [报告]
发表于 2014-11-10 17:07 |只看该作者
少了个echo,哥

论坛徽章:
0
3 [报告]
发表于 2014-11-10 17:13 |只看该作者
yestreenstars 发表于 2014-11-10 17:07
少了个echo,哥


敲错了。机器上运行的是[[ "0"=="`grep "^$Username" /etc/passwd | cut -d: -f3`" ]] && echo "The account is admin" || echo "The account is user"

结果是键盘录入root显示The account is admin
结果是键盘录test显示The account is admin

论坛徽章:
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
4 [报告]
发表于 2014-11-10 17:15 |只看该作者
回复 3# jadonmust

注意空格哦~
  1. [[ "0" == "`grep "^$Username" /etc/passwd | cut -d: -f3`" ]]
复制代码

论坛徽章:
0
5 [报告]
发表于 2014-11-10 17:21 |只看该作者
yestreenstars 发表于 2014-11-10 17:15
回复 3# jadonmust

注意空格哦~



我就是这么写的。
[[ 空格"0"空格==空格"`grep "^$Username" /etc/passwd | cut -d: -f3`"空格 ]] && echo "The account is admin" || echo "The account is user"

论坛徽章:
0
6 [报告]
发表于 2014-11-10 17:25 |只看该作者
jadonmust 发表于 2014-11-10 17:21


OK,好了。

[[ 空格"0"空格==空格"`grep "^$Username" /etc/passwd | cut -d: -f3`"空格 ]] & ...


第二个空格和第三的空格没写。

可是没有第二个空格和第三的空格也没报错呀?

论坛徽章:
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 [报告]
发表于 2014-11-10 17:32 |只看该作者
回复 6# jadonmust

为什么没报错?看man bash吧~
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP