免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: dayan_he
打印 上一主题 下一主题

[AWK]返回值的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-04-14 23:12 |只看该作者
我试了下
echo 'abc'|awk '/abc1/'  
echo $?

echo 'abc'|awk '/abc/'  
echo $?

结果都是 0
shell应该是判断前一条命令执行是否成功 成功就返回0
这里无论匹配成功与否,awk都执行成功了
至于内部awk得到什么结果 这个不关shell的事吧

论坛徽章:
0
12 [报告]
发表于 2009-04-15 00:52 |只看该作者
原帖由 cssjtuer 于 2009-4-14 23:12 发表
我试了下
echo 'abc'|awk '/abc1/'  
echo $?

echo 'abc'|awk '/abc/'  
echo $?

结果都是 0
shell应该是判断前一条命令执行是否成功 成功就返回0
这里无论匹配成功与否,awk都执行成功了
至于 ...

echo "abc" | awk '/abc/{exit 111}'
echo $?看一下。

论坛徽章:
0
13 [报告]
发表于 2009-04-15 09:02 |只看该作者

回复 #8 ywlscpl 的帖子

其实我是想知道awk在哪里说了?
因为我在man awk时候没有找到。

论坛徽章:
0
14 [报告]
发表于 2009-04-15 09:43 |只看该作者

回复 #13 rhlei 的帖子

我也是先翻了MAN的,

论坛徽章:
0
15 [报告]
发表于 2009-04-15 11:50 |只看该作者
关于返回值grep 和sed awk是不一样的
1:grep的退出状态代表命令中模式查找的成功与否。这种用法经常用于if叛变条件
   例:mtv-rc-ss8:/usr/local/src # grep adsfasfas /etc/shadow
          mtv-rc-ss8:/usr/local/src # echo $?
                           1
命令并没有写错,语法也是对的,但是没有结果那就是1
     
2:sed ,awk的返回值表示模式匹配的成功与否

[ 本帖最后由 xiaobing927 于 2009-4-15 15:09 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2009-05-04 16:20 |只看该作者
把老帖翻出来了,呵呵。
如果按楼上的说,“2:sed ,awk的返回值表示模式匹配的成功与否”

那匹配上应该返回0,没匹配上应该返回1!!!

论坛徽章:
0
17 [报告]
发表于 2009-05-04 17:21 |只看该作者

回复 #16 alfred1980 的帖子

2:sed ,awk的返回值表示模式匹配的成功与否

难道sed awk是15楼写的?

论坛徽章:
0
18 [报告]
发表于 2009-05-04 17:28 |只看该作者
所以我很疑惑啊?
说到最后,反而!!

论坛徽章:
0
19 [报告]
发表于 2009-05-04 17:44 |只看该作者

回复 #18 alfred1980 的帖子

没什么好疑惑的,对返回值的设定每个命令、每个程序情况都不尽相同。

对于awk,其返回值一般情况下分两种,awk语句执行成功返回0,awk语句执行失败返回1(一般是语法错误)。至于awk里面具体的语句是什么根本不用去考虑。

grep命令跟awk又不一样了
[root@Mylinux tmp]# echo "abc" |grep  "d";echo $?
1
grep命令执行成功了,只不过没匹配到,返回值就是1

论坛徽章:
0
20 [报告]
发表于 2009-05-04 18:27 |只看该作者
我的意思是15楼讲到awk的那个!

应该不是awk匹配已否,而是命令执行成功与否!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP