LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 707|回复: 5

几个shell的菜问题

[复制链接]
发表于 2005-6-20 18:36:30 | 显示全部楼层 |阅读模式
大家告诉我好吗?
1比如如果在shll脚本里面有句ping的语句,运行它的时候在终端就出现执行的过程
ping 218.202.50.1

Pinging 218.202.50.1 with 32 bytes of data:

Reply from 218.202.50.1: bytes=32 time<1ms TTL=128
Reply from 218.202.50.1: bytes=32 time<1ms TTL=128
Reply from 218.202.50.1: bytes=32 time<1ms TTL=128
Reply from 218.202.50.1: bytes=32 time<1ms TTL=128

Ping statistics for 218.202.50.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

我不想看到这些过程,但是我又想看到最后的结果,就是究竟有没有ping通了。改怎么做呢?
2如果一个脚本里面有一个从起的语句,那么从起之后它还会接着运行那个脚本吗?
3   A=00:10C:F3:37:40
     if($(arp | awk '{print $3}')=$A)
     then arp | awk '{print $1}'
     fi
    怎么不能查找到我们这个网络中mac是A的机器呢?它运行不了,大家告诉我怎么好吗?
我想arp之后如果有这个mac的话就把它的ip输出来。
发表于 2005-6-21 00:04:23 | 显示全部楼层
Post by libinyiyi
大家告诉我好吗?
1比如如果在shll脚本里面有句ping的语句,运行它的时候在终端就出现执行的过程
ping 218.202.50.1

Pinging 218.202.50.1 with 32 bytes of data:

Reply from 218.202.50.1: bytes=32 time<1ms TTL=128
Reply from 218.202.50.1: bytes=32 time<1ms TTL=128
Reply from 218.202.50.1: bytes=32 time<1ms TTL=128
Reply from 218.202.50.1: bytes=32 time<1ms TTL=128

Ping statistics for 218.202.50.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

我不想看到这些过程,但是我又想看到最后的结果,就是究竟有没有ping通了。改怎么做呢?
2如果一个脚本里面有一个从起的语句,那么从起之后它还会接着运行那个脚本吗?
3   A=00:10C:F3:37:40
     if($(arp | awk '{print $3}')=$A)
     then arp | awk '{print $1}'
     fi
    怎么不能查找到我们这个网络中mac是A的机器呢?它运行不了,大家告诉我怎么好吗?
我想arp之后如果有这个mac的话就把它的ip输出来。


1. 用返回值。 如
  1. ping -c4 ip &>/dev/null; [[ $? -eq 0 ]] && bla bla... || bla bla...
复制代码

2. 一般是不行的,当然,如果脚本作为daemon运行并且在脚本中嵌入了对status的检查等功能,也不是做不出来的。
3. arp | awk '{print $3}' 有可能等于$A吗?好像至少也有两行内容吧,还需要进一步的处理。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-21 00:25:12 | 显示全部楼层
1 ping -c4 ip &>/dev/null; [[ $? -eq 0 ]] && bla bla... || bla bla... 解释下【【】】什么用和bla什么用
3第三跟问题,可以提供代码给我看下吗?我部大会
回复 支持 反对

使用道具 举报

发表于 2005-6-21 02:08:48 | 显示全部楼层
Post by libinyiyi
1 ping -c4 ip &>/dev/null; [[ $? -eq 0 ]] && bla bla... || bla bla... 解释下【【】】什么用和bla什么用
3第三跟问题,可以提供代码给我看下吗?我部大会


  1. #!/bin/bash
  2. ping -c4 ip &>/dev/null
  3. [[ $? -eq 0 ]] && bla bla... || bla bla...
  4. #这一段表示如果ping命令成功,则执行&&后的代码,如果失败则执行||后的代码,bla bla..只是表示你要执行的代码的意思。
复制代码


比如说,
arp | awk '{print $3}'
返回:
HWaddress
000:01:70:12:03
有一个首行和一个MAC地址,如果直接判断是不是$A的话,那么它怎么也不可能是$A.必须把首行去掉。
arp|awk 'NR>1'|awk '{print $3}'就去掉了头。当然,如果不止一个interface,还需要loop.
回复 支持 反对

使用道具 举报

发表于 2005-6-21 18:01:24 | 显示全部楼层
" blabla"                              就是诸如此类的东西。

你要是美国签证的话,这个词应该见得比较多阿,呵呵
回复 支持 反对

使用道具 举报

发表于 2005-6-21 21:42:42 | 显示全部楼层
问题3:arp|awk '$3=="00:10C:F3:37:40" print{$1}'
      或者arp |awk -v var=$A '$3==var {print $1}'
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表