当前位置:  技术问答>linux和unix

求解shell的一个具体思路跟写法。。求指教

    来源: 互联网  发布时间:2016-11-20

    本文导语:  运行命令 test 1 user 172.16.4 3 shell需求 less /root/a |grep $2 |grep $3 查找出数据 则执行 echo yes    如果为空 就  less  /root/a | grep $2 | grep 172.16.5  查找出数据 执行 echo yes 如果为空 继续  less  /root/a |...

运行命令
test 1 user 172.16.4 3

shell需求

less /root/a |grep $2 |grep $3 查找出数据 则执行 echo yes   
如果为空 就  less  /root/a | grep $2 | grep 172.16.5  查找出数据 执行 echo yes

如果为空 继续  less  /root/a | grep $2 | grep 172.16.6  查找出数据 则执行 echo yes 如果为空 
继续  less  /root/a | grep $2 | grep 172.16.7  查找出数据 则执行 echo yes  为空的话就自动退出

为什么 要查找到7呢   因为上面命令参数  $4传递了3     172.16.4+3=172.16.7   得出172.16.4 ----172.16.7

所以 172.16.4  172.16.5  172.16.6  172.16.7  都要查询一遍(当然如果其中一个查到数据,其他就不查找了)

重复查找4次  查找到就输出 yes  没有就继续   直到重复4次

我现在不知道做的就是  怎么把他的 IP范围算出来   虽然它传递了一 个 3给我


汗。。。不知道我写的够清楚不~~


  

|
 交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。

 陌图  19:13:59
主席·~~  
陌图  19:14:02
呼叫主席
街舞蚂蚁  19:16:24
咋了
陌图  19:16:48
遇到一个问题~~ 就是在shell 计算的问题


街舞蚂蚁  19:17:17
啥意思
陌图  19:17:41
比如

./test 172.16.4 3

然后再脚本计算出

范围  172.16.4+3=172.16.7

范围为 172.16.4---172.16.7
陌图  19:18:12
当然 也要显示出范围来

172.16.4  172.16.5  172.16.6  172.16.7

最后的结果就是如上
街舞蚂蚁  19:18:40
你把172.16.4按店分成a b c
然后用c算加法不就行了
陌图  19:19:08
拆掉?  然后组合?
街舞蚂蚁  19:19:16
对呀
陌图  19:20:36
如果说  增加一个需求

./test user 172.16.4 3

然后再这个范围内查找出  他的数据  怎么做?
街舞蚂蚁  19:21:31
分别查找不行吗 或者一次把关键字都写上

egrep "key1|key2|key3" file
陌图  19:23:05
如果 再查其中一个范围查到数据  就执行  如没查到 就继续下个范围

用for  还是?
街舞蚂蚁  19:23:43
这不是条件嵌套吗
街舞蚂蚁  19:23:56
for也行 要是递增的
陌图  19:24:42
嗯~ 有点迷糊

但是递增的时候  范围值 就要事先计算好来?
街舞蚂蚁  19:25:49
ippre=172.16.
for i in "4 5 6"
do
     if grep -q $ippre$i filename
     then
         echo "yes"
         exit
     fi
done
街舞蚂蚁  19:26:24
要是单个的你肯定能写出来吧 你先写出一个的 然后往上加啊 一步一步来
陌图  19:26:59
这样不行  ippre=172.16. 这个不能固定的哦  4 5 6也需要计算吧
街舞蚂蚁  19:27:12
你把172.16.4按店分成a b c
然后用c算加法不就行了

街舞蚂蚁  19:27:19
当然要计算啊 前面不都说了吗!
街舞蚂蚁  19:27:51
 你不能计算穿了把最后一位保存到数组里!
 172.16.  这个不是你传的参数吗!!

街舞蚂蚁  19:28:34
 172.16.x  把前面2位截取保存到ippre
x位计算 结果保存到数组
陌图  19:28:41
嗯~~  明白了~~


陌图  19:29:56
也~~ 思路差不多了~~  我先整理下!

这样变量就很多了
陌图  19:30:21
我不知道要计算几次  怎么把这个变量 跟固定???
陌图  19:31:08
172.16.5  172.16.6  172.16.7

c= 怎么分别  5 6 7?
街舞蚂蚁  19:31:15
172.16.4 3

根据这个3就知道次数 3+1次 如果你计算了 保存到数组了 根据数组长度就是循环次数
街舞蚂蚁  19:31:46
你一次不是只穿1个172.16.5 参数吗? 
陌图  19:33:27
比如说 我已经拆开来了

4 分别+3  加3次
陌图  19:33:53
再把 分别加的 3次指 以及它自己传递的 172.16.4

保存?
街舞蚂蚁  19:34:10
看不懂你说啥了
陌图  19:34:33
根据这个3就知道次数 3+1次 如果你计算了 保存到数组了 根据数组长度就是循环次数

我不懂的是这句~~
街舞蚂蚁  19:35:48
172.16.4 3

这会是你传的参数吧 172.16.4+3=172.16.7然后你需要查询
172.16.4 172.16.5 172.16.6 172.16.7


172.16.4 4

这会是你传的参数吧 172.16.4+4=172.16.8然后你需要查询
172.16.4 172.16.5 172.16.6 172.16.7 172.16.8
街舞蚂蚁  19:36:19
是不是i+1次?
街舞蚂蚁  19:36:58
再说 还有一种方法 让你把最后一位算完保存到数组里 然后用数组的长度来循环就行了 
陌图  19:37:46
嗯~~

明白了~~ 我先写下代码 

测试下~~ 不明 再找你哈
街舞蚂蚁  19:37:54
 
陌图  19:38:19
开始我也知道 拆开 组合

但是 不知道 怎么计算 范围 以及 执行的次数
陌图  19:38:48
哈哈~~ 明白了~  你去 那个csdn里面 随便说2下~~

那100分 别浪费了~~哈哈
陌图  19:39:05
 http://topic.csdn.net/u/20110228/18/44738262-db67-47c8-87f4-ffe728d772cd.html?seed=1781063085&r=71859540#r_71859540

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求解 求解 求解
  • Linux Shell编程从初学到精通 第四章课后习题2 求解
  • 有限元求解器 GetDP
  • 偏微分方程求解工具箱 DUNE
  • linux命令求解释....
  • 偏微分方程求解框架 Overture
  • 100分求解!!!!!
  • 编译内核时候出现的问题,求解
  • makefile求解
  • 求解ucos ii的一句代码
  • 求助linux下mysql 求解!
  • 求解啊,centos下 shutdown -h now 无效??
  • 求解windows下硬盘安装linux如何用linux引导
  • 关于linux shell的一个不明白的地方。求解
  • solaris安装不上,求解.............
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • ubuntu12.04求解
  • 100分求解如何查看内存最高使用值!!
  • 高分求解---如何在DOS下查杀欢乐时光病毒?用哪种杀毒软件?Windows98没法进入了!
  • 求解struct的大小


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3