免费注册 查看新帖 |

Chinaunix

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

[请教]字符替换问题${} [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-21 14:00 |只看该作者 |倒序浏览
下面是我写的一段代码:
#!/bin/sh
#Author: zhuzhzh
#Date: 2007/03/21
#input: freeip.txt
#output: a script used to add route-policies into system. These route-policies only let free ip address pass through my gateway

get_mask(){
    unset mask
        while [ "$1" ]
        do
            bit=$(echo "obase=2;ibase=10;$1"|bc)
            shift
            mask="$mask$bit"
        done
        mask=${mask%%0*}
        echo ${#mask}
}

awk '{print $1"/"$3}' freeip.txt>ipmask.txt

while read ipmask
do
    maskpart=${ipmask##*/}
    echo "${ipmask%%/*}/$(get_mask ${maskpart//./ })">>ip32.txt
done<ipmask.txt

echo "#!/bin/sh\ndo_start(){\nip route add default via 202.119.43.1 table INNET">add_route
echo "ip rule add to 10.0.0.0/8 table INNET prio 100">add_route
echo "ip rule add to 192.168.0.0/24 table INNET prio 100">add_route
echo "ip rule add to 172.16.0.0/16 table INNET prio 100">add_route
awk '{print "ip route add to "$1" table INNET prio 100"}' ip32.txt>add_routext


但总提示在这一行:
    echo "${ipmask%%/*}/$(get_mask ${maskpart//./})">>ip32.txt
替换错误

我查了一下, 就是因为 ${maskpart//./ }替换出错,

我在shell中一句一句实验没有问题, 但在脚本里执行就出错

[ 本帖最后由 zhuzhzh 于 2007-3-21 14:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-03-21 15:12 |只看该作者
打开set -x看调试信息,具体怎么替换错了。
别人又没有您的ipmask.txt,怎么帮您找错。

论坛徽章:
0
3 [报告]
发表于 2007-03-22 12:31 |只看该作者
ipmask.txt:

202.119.32.0/255.255.0.0
...

论坛徽章:
0
4 [报告]
发表于 2007-03-22 12:42 |只看该作者
弱弱地问句
老大你想替换成什么样?

论坛徽章:
0
5 [报告]
发表于 2007-03-22 13:18 |只看该作者
${maskpart//./ }
这操作是什么意思?
不怎么懂sh

是不是想把.去掉?

变成255 255 0 0?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2007-03-22 15:28 |只看该作者
LZ 原貼有出現 ${maskpart//./ } 的地方一共有三行:
echo "${ipmask%%/*}/$(get_mask ${maskpart//./ })">>ip32.txt
echo "${ipmask%%/*}/$(get_mask ${maskpart//./})">>ip32.txt
${maskpart//./ }
第二行在 ./ 後少了空白,但在 code 裡是有的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP