首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php执行awk linux命令

使用php执行awk linux命令
EN

Stack Overflow用户
提问于 2013-05-20 01:42:56
回答 2查看 1.6K关注 0票数 0

我想用php执行awk linux命令,该命令是

代码语言:javascript
复制
 mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12 }'

我用linux执行它,它能工作,它给了我当前的cpu使用率,我在php中试了一下:

代码语言:javascript
复制
$cmd= system("mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12 }'",$retval);
echo $retval;

代码语言:javascript
复制
$cmd= passthru(" mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12 }'",$retval);
 echo $retval;

它不工作,我对它做了一些搜索,所以我把awk命令放在变量中,然后执行它:

代码语言:javascript
复制
$var='$12 ~ /[0-9.]+/ { print 100 - $12 }';
$cmd=  exec('mpstat | awk"$var"',$retval);
echo $retval;

并且输出始终为Array

EN

回答 2

Stack Overflow用户

发布于 2013-05-20 01:50:21

我写了一个简短的程序来说明不同之处:

代码语言:javascript
复制
<?php
$cmd = system("ls", $retval);
echo "Cmd: " . $cmd . "\n";
echo "Retval: " . $retval . "\n";
?>

输出:

代码语言:javascript
复制
prog.php
Cmd: prog.php
Retval: 0
票数 1
EN

Stack Overflow用户

发布于 2013-05-20 02:20:51

我通常使用popen来实现这些目的。

示例:

代码语言:javascript
复制
$handle = popen('mpstat | awk \'$12 ~ /[0-9.]+/ { print 100 - $12 }\' 2>&1', 'r');
$read = fread($handle, 8192);
var_dump($read);
pclose($handle);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16637559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档