[问题]请问如何得到本机ip地址?

sh/bash/dash/ksh/zsh等Shell脚本
mgqw
帖子: 59
注册时间: 2006-11-09 21:06
来自: 深圳

[问题]请问如何得到本机ip地址?

#1

帖子 mgqw » 2008-03-26 12:50

我想得到本机IP地址作,用ifconfig命令显示的东西太多了,不适用,我只需要类似:192.168.0.120就行了,请问打下用什么命令??
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#2

帖子 yaoms » 2008-03-26 13:00

代码: 全选

ifconfig eth1 | grep inet\ addr | awk '{print $2}' | awk -F: '{print $2}'
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#3

帖子 bones7456 » 2008-03-26 14:05

yaoms 写了:

代码: 全选

ifconfig eth1 | grep inet\ addr | awk '{print $2}' | awk -F: '{print $2}'
通用性不是很好,我这locale下就要改成

代码: 全选

ifconfig eth0 | grep inet\ 地址 | awk '{print $2}' | awk -F: '{print $2}'
才能工作.
期待更好的答案.
关注我的blog: ε==3
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#4

帖子 yaoms » 2008-03-26 14:12

那就这样,哈哈:

代码: 全选

ifconfig | awk '/inet /{print $2}' | awk -F: '{print $2}' | grep -v '127.0.0.1'

这样更好:

代码: 全选

ifconfig | awk '{if ( $1 == "inet" && $3 ~ /^Bcast/) print $2}' | awk -F: '{print $2}'
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
mgqw
帖子: 59
注册时间: 2006-11-09 21:06
来自: 深圳

#5

帖子 mgqw » 2008-03-26 14:24

谢谢各位大侠啊!
头像
qiang_liu8183
论坛版主
帖子: 10699
注册时间: 2006-09-10 22:36
系统: Arch Debian
来自: 北京

#6

帖子 qiang_liu8183 » 2008-03-26 14:34

:D
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#7

帖子 yaoms » 2008-03-26 14:38

还有一个:

代码: 全选

ip -f inet addr | grep global | awk '{print $2}' | awk -F/ '{print $1}'
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
qiang_liu8183
论坛版主
帖子: 10699
注册时间: 2006-09-10 22:36
系统: Arch Debian
来自: 北京

#8

帖子 qiang_liu8183 » 2008-03-26 14:49

:D
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲
mgqw
帖子: 59
注册时间: 2006-11-09 21:06
来自: 深圳

#9

帖子 mgqw » 2008-03-26 15:04

再次请教一个小问题:
我要把这个得到的IP地址赋给一个变量:my_ip,请问如何赋值。

小菜初学shell请多多指教 :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#10

帖子 yaoms » 2008-03-26 15:06

代码: 全选

my_ip=`ip -f inet addr | grep global | awk '{print $2}' | awk -F/ '{print $1}'`
注意包含命令的那个不是单引号哦

还可以这样:

代码: 全选

my_ip=$(ip -f inet addr | grep global | awk '{print $2}' | awk -F/ '{print $1}')
上次由 yaoms 在 2008-03-26 15:08,总共编辑 1 次。
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
mgqw
帖子: 59
注册时间: 2006-11-09 21:06
来自: 深圳

#11

帖子 mgqw » 2008-03-26 15:07

我找到一个方法了,嘿嘿:
my_ip="$(ip -f inet addr | grep global | awk '{print $2}' | awk -F/ '{print $1}')"

echo "$my_ip"

得到变量值 嘿嘿。
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#12

帖子 yaoms » 2008-03-26 15:08

:roll: :D
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
mgqw
帖子: 59
注册时间: 2006-11-09 21:06
来自: 深圳

#13

帖子 mgqw » 2008-03-26 15:32

代码:

代码: 全选

my_ip=`ip -f inet addr | grep global | awk '{print $2}' | awk -F/ '{print $1}'`

注意包含命令的那个找了半天才找到,竟然是键盘上数字1左边那个,藏得好深那!

谢谢楼上的大侠,小菜我现在也在深圳,嘿嘿
:D :lol:
头像
dogfox
论坛版主
帖子: 5311
注册时间: 2006-09-02 14:18
来自: 汉桑城
联系:

#14

帖子 dogfox » 2008-03-26 15:56

看你是什么拨号方式了,如果是pppoe

代码: 全选

ifconfig ppp
dhcp方式

代码: 全选

ifconfig eth0
全世界linux爱好者联合起来 !
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#15

帖子 bones7456 » 2008-03-27 19:27

yaoms
关注我的blog: ε==3
回复