如何将exec()输出转换为整数并执行操作

时间:2018-02-15 12:34:21

标签: php bash terminal

我正在运行一个php脚本来查看我的机器上运行了多少个python3进程。我使用以下代码:
$count = exec("pgrep -c python3")
这将返回2(例如,如果正在运行2个进程)。现在我需要对这个输出进行数学运算,比如从5中减去这个数。当我这样做并回显输出时,我什么也得不到。我尝试过typecasing到int,但这不会有帮助。

有人可以建议我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

尝试以下功能:

/**
 * Count the number of  processes runing based on their name
 * @param string $processus_name
 * @return integer|boolean
 */
function count_processus( $processus_name = '' ){
    $processe_name = escapeshellarg( $processus_name );
    $exit_status = 0;
    $output = '';
    $cmd = sprintf( 'pgrep -c %s', $processus_name );
    exec( $cmd, $output, $exit_status );
    if( $exit_status != 0 ){
        // Faild $output will containe the error message
        return false;
    }

    return (int)$output[0];
}