在写脚本的时候, 经常会有需要调用其他命令. 而在调用一些耗时命令的时候, 我们是需要能够实时掌握脚本进度的.

一般来说, 脚本的进度通常是通过脚本的输出来获得.

如果是一个bash脚本, 那么直接调用命令 A就可以将执行权交出去, 然后命令 A的输出就可以实时显示出来了.

如果是perl脚本, 通过``符号也可以调用命令 A, 但是结果会在命令 A整个结束的时候才能拿到, 此时通过system 命令 A就可以将执行权交给命令 A, 同样, 命令 A的输出也能够实时显示出来.

如果是PHP脚本, 通过``符号调用, 和perl脚本是一样的, 只能在命令A结束是才能拿到返回. 那么PHP脚本如何实时获取命令 A的输出呢? 可以通过监听进程输出的形式:

function real_cmd($command){// 执行命令并打开命令的输出指针$handle = popen($command, 'r');while (!feof($handle)) {// 循环获取命令输出$data = fgets($handle);// 刷新输出缓冲区ob_flush();flush();echo $data;}// 命令执行结束, 关闭指针pclose($handle);
}

PHP脚本调用命令获取实时输出相关推荐

  1. 【Groovy】Groovy 脚本调用 ( 命令行执行 Groovy 脚本并传入参数 | 获取 Groovy 脚本执行参数 )

    文章目录 前言 一. 命令行执行 Groovy 脚本并传入参数 二.获取 Groovy 脚本执行参数 前言 在 Groovy 脚本 , Groovy 类 , Java 类中 , 可以调用 Groovy ...

  2. inux C程序中获取shell脚本输出(如获取system命令输出)

    1. 前言 Unix 界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个 ping程序来测 ...

  3. 可测含多进程的app-- python调用adb命令获取Android App应用的性能数据:CPU、GPU、内存、电池、耗电量(含python源码)

    可测含多进程的app–Python–通过adb命令获取Android App应用的性能数据:CPU.GPU.内存.电池.耗电量,并与Perfdog取值对比结果 1.原理 python脚本通过os.po ...

  4. bat脚本中获取上级目录_批处理bat命令--获取当前盘符和当前目录和上级目录

    批处理命令获取当前盘符和当前目录 %~d0 是当前盘符 %cd% 是当前目录 可以用echo %cd%进行打印测试 以下例子是命令行编译Visual Studio编写的程序: @echo off se ...

  5. bat脚本中获取上级目录_转载 批处理bat命令--获取当前盘符和当前目录和上级目录...

    批处理命令获取当前盘符和当前目录 %~d0 是当前盘符 %cd% 是当前目录 可以用echo %cd%进行打印测试 以下例子是命令行编译Visual Studio编写的程序: @echo off se ...

  6. bat脚本中获取上级目录_批处理bat命令 获取当前盘符和当前目录和上级目录的代码...

    批处理命令获取当前盘符和当前目录 当前盘符:%~d0 当前路径:%cd% 当前执行命令行:%0 当前bat文件路径:%~dp0 当前bat文件短路径:%~sdp0 测试 echo 当前盘符:%~d0 ...

  7. shell脚本的命令行传参

    在Linux环境下开发C程序,若想要可选择性的给程序传递外部参数,最后是以启动脚本的形式间接进行传递,这样对于命令行的参数解析工作将集中到shell脚本中,大大增加C代码的可移植性.       sh ...

  8. 函数定义、函数参数、跨脚本调用函数

    2.6.函数使用 函数定义 示例(文件名称为func1.sh): #!/bin/bash ##定义函数 hello() { echo "Hello there today's date is ...

  9. 【Linux学习】如何编写Shell脚本调用企业微信api来发消息给企业微信成员?

    一.前言 最近通过python实现了发送消息给企业微信的功能,参考链接: [Jenkins学习 ]如何编写Python脚本来调用企业微信的api通知企业微信成员关于Jenkins的编译结果? http ...

最新文章

  1. vs2005c语言连接mysql_VS2005连接MySQL C API
  2. 预备作业02-20162314王译潇 黑客帝国之路1.1
  3. Android 友盟分享躺过的几个坑,大坑,坑爹啊
  4. [TCP/IP]TCP服务端accept发生在三次握手的哪一个阶段
  5. CVPR 2020 | 序列化的三维形状生成网络PQ-NET
  6. QT 在最新版mac下无法显示变量的问题处理
  7. [转载] Python日历模块| 使用示例的weekday()方法
  8. 【Masm】使用教程
  9. MODFLOW Flex、GMS、FEFLOW、HYDRUS实践应用
  10. 智慧校园供水系统智能管理
  11. 考研之复习经验与时间安排篇
  12. 用聊天记录当证据 对方改了微信号怎么证明他是他
  13. 寒门贵子(源自超级演说家刘媛媛)
  14. EUV光刻机内部揭秘!
  15. Django永久重定向问题
  16. oracle表如何做统计分析,Oracle表统计信息的分析
  17. ak和sk的意思及用法
  18. as ssd测试软件得分少,教大家AS SSD Benchmark如何测试硬盘性能
  19. 财务平台打印不完整处理及横向纵向问题
  20. 三生三世十里桃花手游怎么用电脑玩 三生三世十里桃花模拟器教程

热门文章

  1. linux---基础01
  2. 打开黑色_垃圾桶里的黑色塑料袋,打开一看,倒吸一口气!
  3. python高效处理文件_使用Python语言高效地处理一个文本文件
  4. python中exec是什么意思_Python中的进程分支fork和exec详解
  5. centos7开启vnc服务_阿里云CentOS 7搭建VNC远程桌面服务步骤方法
  6. pytorch 对抗样本_《AI安全之对抗样本入门》—3.4 PyTorch
  7. python try else_python try/except/else与递归
  8. java文件传输连接方式_Java 学习笔记 网络编程 使用Socket传输文件 CS模式
  9. acc定义代码 神经网络_神经网络的这几个坑,你都躲过了吗
  10. Mysql 中Sql控制流语句_DCL语句/控制流语句