当前位置: 技术问答>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给我
汗。。。不知道我写的够清楚不~~
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
陌图 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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。