免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1144 | 回复: 6
打印 上一主题 下一主题

[学习分享] liux脚本新手求教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-02-24 17:21 |只看该作者 |倒序浏览
#!/bin/bash
read -p "请输入查询网段:"  Network
read -p "请输入起始主机(例如:11)" Hoststartaddr
read -p "请输入结束主机(例如:254)" Hostendaddr

for I in  {$Hoststartaddr..$Hostendaddr};
do
ping -c 1 -w 1 $Network.$I &> /dev/null
if [ $? -eq 0 ];then
echo "$Network.$I is ok."
else
echo "$Network.$I is down."
fi
done
[root@iZ280lv07uxZ ~]# sh 123
请输入查询网段:10.144.56
请输入起始主机(例如:11)37
请输入结束主机(例如:254)40
10.144.56.{37..40} is down.
执行结果这么这个样子
正常的结果应该是
10.144.56.37 is ok
10.144.56.38 is down
10.144.56.39 is down
。。。
请问我这里的大括号展开为什么不能正常。

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
2 [报告]
发表于 2016-02-24 20:29 |只看该作者
不能这样用吧

应该这样
for i in $(seq ${Hoststartaddr}  ${Hostendaddr} )

论坛徽章:
0
3 [报告]
发表于 2016-02-25 09:48 |只看该作者
可以使用常量是可以做到的呀 。我只是改用变量就不行了。回复 2# lyhabc


   

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
4 [报告]
发表于 2016-02-25 12:45 |只看该作者
@woshihup
变量可以啊   

论坛徽章:
0
5 [报告]
发表于 2016-02-25 13:33 |只看该作者
我知道是用我原来的方式。不是用seq回复 4# lyhabc


   

求职 : Linux运维
论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-01-06 06:20:00
6 [报告]
发表于 2016-02-25 13:37 |只看该作者
本帖最后由 鱼头_火锅 于 2016-02-25 13:41 编辑

在shell扩展中,大括号扩展优先级最高,是在变量扩展之前进行的,所以会出现扩展结果不正确的问题!
大括号扩展完全是字面上的扩展,bash不会对扩展的上下文字或大括号之间的文本进行任何语义解释.

论坛徽章:
0
7 [报告]
发表于 2016-02-25 14:30 |只看该作者
嗯 了不起。我懂了 回复 6# 鱼头_火锅


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP