当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]能不能在GREP的正则表达式里引用一个变量?
帖子发表于 : 2008-05-06 20:15 

注册: 2007-10-24 13:19
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
RT.比如变量name存放一个用户名, 用who | grep +正则表达式来判断name里的用户名有没登录


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-05-06 20:53 
头像

注册: 2005-07-02 14:41
帖子: 4133
系统: Ubuntu 14.04 (Kylin)
送出感谢: 53
接收感谢: 11
可以。

这是bash的事,不是grep的事哦。

这种问题你自己试一下不就知道了。


_________________
https://weakish.github.io


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-05-06 20:56 

注册: 2007-10-24 13:19
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
那样怎么写?举个例子,自己试了很多种写法都不行


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-05-06 22:40 
头像

注册: 2005-10-25 11:15
帖子: 1016
送出感谢: 0 次
接收感谢: 1
代码:
who | grep $USER


_________________
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-05-07 16:12 

注册: 2007-10-24 13:19
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
我是说正则表达式和引用变量一起,比如完全匹配$user的内容,是grep '^$user$'???关键是那个$,怎么在正则表达式里告诉它$user是一个变量


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-05-07 16:23 

注册: 2008-03-25 21:16
帖子: 10
送出感谢: 0 次
接收感谢: 0 次
who | grep "^$user "
ykk99114 写道:
我是说正则表达式和引用变量一起,比如完全匹配$user的内容,是grep '^$user$'???关键是那个$,怎么在正则表达式里告诉它$user是一个变量


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-05-07 18:25 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
ykk99114 写道:
我是说正则表达式和引用变量一起,比如完全匹配$user的内容,是grep '^$user$'???关键是那个$,怎么在正则表达式里告诉它$user是一个变量

shell会把$user转成它的值的,比如user="abc",grep 接收到的参数实际是 "^abc$",不过要用双引号,不要用单引号,否则shell是不会替换的


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-05-07 18:49 
头像

注册: 2005-07-02 14:41
帖子: 4133
系统: Ubuntu 14.04 (Kylin)
送出感谢: 53
接收感谢: 11
和你说了,是bash的问题,不是grep的问题。

命令都是先由bash过的。bash把变量都展开了,再传递给grep,grep根本不知道有什么变量。


_________________
https://weakish.github.io


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-05-07 23:37 

注册: 2007-10-24 13:19
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
就是假设user=linux,那么grep '^$user$'是bash先把linux代进去,即等于grep '^linux$'?不用考虑$user的$转不转义


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-05-07 23:56 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
ykk99114 写道:
就是假设user=linux,那么grep '^$user$'是bash先把linux代进去,即等于grep '^linux$'?不用考虑$user的$转不转义

说了不要用单引号啊.
用双引号,你这句话就是正确的.


_________________
关注我的blog: ε==3


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译