免费注册 查看新帖 |

Chinaunix

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

[文本处理] 怎么把AWK的变量传出来? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-27 10:18 |只看该作者 |倒序浏览
今天依然编写我的小工具,但是又遇到一个问题,还望请教一下。

function CheckParmeta()
{

for((i=0;i < ${#InPutMessage[@]}; i++))
do
if [ "${InPutParment[$i]}" == "" ]
then
   read -p "${InPutMessage[$i]}(defauls : ${InPutDefauls[$i]}): " InPutParment[$i]

   if [ ${InPutCheckTy[$i]} -eq 1 ]      #IP アドレスチェック
   then
      echo ${InPutParment[$i]} | awk -F '.' '
      NF==4 {
        for(i=1;i<=NF;i++) {
          if ((i==4) && (($i == 0) || ($i == 255))) {printf "123"; exit}
          if (($i > 255) || ($i !~ /^[0-9]*$/)) {printf "234";exit}
        }
      }
      NF!=4 {
          printf "456";
          exit
      }'
   elif [ ${InPutCheckTy[$i]} -eq 2 ]   
   then
     echo "temp!"
   elif [ ${InPutCheckTy[$i]} -eq 3 ]   
   then
     echo "temp!"
   fi

   if [ $a -eq 1 ]
   then
     exit 1
   fi
fi
done
}

AWK这一段的动作是这样子的,InPutParment得到我输入的IP地址,我通过AWK来判断地址是否合法,如果不合法就退出程序。我在awk中加了exit,但是好像只是退出了awk程序,shell还是没有退出,只是啥原因

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-06-27 10:23 |只看该作者
回复 1# 一世缥缈
awk中的exit就是只退出awk的继续执行,
只有做到这句,才能退出整个程序。
  1. if [ $a -eq 1 ]
  2.    then
  3.      exit 1
  4.    fi
复制代码



   

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
3 [报告]
发表于 2014-06-27 10:38 |只看该作者
ipcalc -c 111.222.333.444
LZ为啥不用简单的方法非要用小鬼子的懒脚本

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
4 [报告]
发表于 2014-06-27 10:41 |只看该作者
回复 3# dn833
记起来了,这是在检查一个ip地址是否合理啊,
以前发过帖子的,那干嘛自己闭门造车呢,
ipcalc -c 妥妥的。

   

论坛徽章:
0
5 [报告]
发表于 2014-06-27 11:23 |只看该作者
即使不ipcalc,起码也是grep啊,又不涉及数值计算,为啥要用awk。

论坛徽章:
2
黑曼巴
日期:2017-09-18 16:16:1315-16赛季CBA联赛之广东
日期:2017-10-25 16:20:16
6 [报告]
发表于 2014-06-27 12:34 |只看该作者
这个是小鬼子写的?

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
7 [报告]
发表于 2014-06-27 12:45 |只看该作者
回复 6# jgrlj322
应该依据这一行。
  1. #IP アドレスチェック
复制代码


   

论坛徽章:
0
8 [报告]
发表于 2014-06-27 13:46 |只看该作者
嘛,其实也可能是楼主在日企。

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
9 [报告]
发表于 2014-06-27 22:31 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2014-07-04 10:35 |只看该作者
回复 4# Herowinter


    貌似ipcalc命令没有-c的选项呢?这不是通过IP地址去计算其他的地址的么?你

ipcalc -c 111.222.333.444
ipcalc: bad argument -c: unknown option
Usage: ipcalc [OPTION...]
  -b, --broadcast     Display calculated broadcast address
  -h, --hostname      Show hostname determined via DNS
  -m, --netmask       Display default netmask for IP (class A, B, or C)
  -n, --network       Display network address
  -p, --prefix        Display network prefix
  -s, --silent        Don't ever display error messages

Help options:
  -?, --help          Show this help message
  --usage             Display brief usage message
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP