分页: 1 / 1

谁能帮我详细解释下这行代码么?

发表于 : 2010-05-18 20:21
tiitoo
USER_IP=`who am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'
尽量详细点,谢啦! :em09 :em11

Re: 谁能帮我详细解释下这行代码么?

发表于 : 2010-05-18 21:42
hrbeu06ws
USER_IP=`who am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
首先,楼主好像少了最后一个`符号。这里``表示命令替换。

代码: 全选

who am i 2>/dev/null
显示登录信息,并且重定向错误信息到位桶中,即丢掉错误信息。

代码: 全选

awk '{print $NF}'
打印最后一个字段,即ip所在的字段。

代码: 全选

sed -e 's/[()]//g'
过滤其中的括号,ip包含在括号当中。

最后将当前登录用户的ip赋值给USER_IP

Re: 谁能帮我详细解释下这行代码么?

发表于 : 2010-05-19 22:14
tiitoo
首先,楼主好像少了最后一个`符号。这里``表示命令替换。
确实少了一个`符号

代码: 全选

sed -e 's/[()]//g'
过滤其中的括号,ip包含在括号当中。
这句话不大懂,能举个例子么?谢...

Re: 谁能帮我详细解释下这行代码么?

发表于 : 2010-05-19 22:47
yingfei
sed -e 's/[()]//g'
这句的意思是, 去掉所有的 "(" 或者 ")" 。
比如

代码: 全选

echo "(127.0.0.1)"  | sed -e 's/[()]//g'  
会得到

代码: 全选

127.0.0.1
没有了()