免费注册 查看新帖 |

Chinaunix

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

gawk在php中工作不正常 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-22 11:34 |只看该作者 |倒序浏览
自己写了一个脚本,想通过php的web界面发布出来,但是gawk里面的减法运算失效了,在系统里面直接运行脚本是可以的,烦请各位大佬帮忙诊断诊断,代码如下:
<?php
$IP = $_POST['IP'];
$STR = $_POST['Comm'];
$UP = `snmpwalk -v 1 $IP -c $STR sysuptime | gawk '{ print $5 }'`;
$RESULT = `snmpwalk -v 1 $IP -c $STR iflastchange | gawk '{ print $1 " Used: " '$UP' - $5 " Days ago"}' | sed "s/IF-MIB::ifLastChange./SwitchPort /"`;
echo "<pre>$RESULT</pre>";
?>

问题就出在第五行的'$UP' - $5

论坛徽章:
0
2 [报告]
发表于 2009-04-22 12:57 |只看该作者
在PHP里面不能这么写,要通过exec或system调用

论坛徽章:
0
3 [报告]
发表于 2009-04-22 14:18 |只看该作者
原帖由 bs 于 2009-4-22 12:57 发表
在PHP里面不能这么写,要通过exec或system调用

谢谢,那请问exec或system调用的话该怎么写啊?

我用
echo exec('snmpwalk -v 1 $IP -c $STR iflastchange | gawk '{ print $1 " Used: " '$UP' - $5 " Days ago"}' | sed "s/IF-MIB::ifLastChange./SwitchPort /"');

似乎还是不行啊。

论坛徽章:
0
4 [报告]
发表于 2009-04-22 15:34 |只看该作者
我汗啦,你这PHP语法都有问题...单双引号不是这么用的


  1. $code= <<<EOF
  2. 'snmpwalk -v 1 $IP -c $STR iflastchange | gawk '{ print $1 " Used: " '$UP' - $5 " Days ago"}' | sed "s/IF-MIB::ifLastChange./SwitchPort /"'
  3. EOF;

  4. exec($code);
复制代码

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

论坛徽章:
0
6 [报告]
发表于 2009-04-27 10:41 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2009-05-04 12:15 |只看该作者
不知道为什么,gawk执行到变量$UP的地方,后面的就不执行了,我在后面又加了一个awk字句,给搞定了。

论坛徽章:
0
8 [报告]
发表于 2009-05-04 14:16 |只看该作者
单引号 里面的变量不做解析,双引号里面会做解析
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP