首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在父进程中读取子(外部)进程标准输出标准错误输出结果

但是,实际情况并不是我们想那么简单。比如我文前提到问题:别人提供了一个Console控制台程序,我们将如何获取其执行输出结果呢?...这三个参数似乎就点中了标题中两个关键字“标准输出”、“标准错误输出”。是的!我们正是靠这几个参数来解决我们所遇到问题。那么如何使用这些参数呢?         我们选用还是老方法——管道。...设置标准输出标准错误输出句柄 si.hStdError = hWrite; // 把创建进程标准错误输出重定向到管道输入 si.hStdOutput = hWrite...; // 把创建进程标准输出重定向到管道输入 隐藏CMD控制台 si.wShowWindow = SW_HIDE; 设置有效属性 si.dwFlags = STARTF_USESHOWWINDOW...我们使用STARTF_USESTDHANDLES原因是:我们使用了标准输出标准错误输出句柄。

3.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

.NETC# 程序如何控制台终端中以字符表格形式输出数据

在一篇在控制台窗口中监听前台窗口博客中,我在控制台里以表格形式输出了每一个前台窗口信息。在控制台里编写一个字符表格其实并不难,毕竟 ASCII 中就已经提供了制表符。...不过要在合适位置输出合适制表符,要写一些打杂式代码了;另外,如果还要考虑表格列宽度自适应,再考虑中英文在控制台对齐,还要考虑文字超出单元格时是裁剪/省略/换行。...,但有小部分控制台会在输出完后额外换一行,于是会看到每输出一行都有一个空白行出现(虽然我现在仍不知道原因) 定义列时,每个参数都是一个 ConsoleTableColumnDefinition 实例,为了方便,我允许隐式元组转换 整数列宽元组,定义是这一列可用字符数 小数列元组,是将整数列宽和表格划线用字符除外后,剩余总列宽百分比 元组第二项是表头中列名 元组第三项是这一列获取和格式化方法...如何控制台程序中监听 Windows 前台窗口变化 - walterlv Walterlv.Packages/src/Utils/Walterlv.Console 参考资料 D 个人博客 本文会经常更新

35330

linux c程序中获取shell脚本输出

前言   Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认是,借助脚本确实能够极大简化一些编程工作。...但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台输出结果。例如,执行外部命令ping后,如果执行失败,我们希望得到ping返回信息。 2....方法就是fork一个子进程,并创建一个匿名管道,在子进程中执行shell命令,并将其标准输出dup 到匿名管道输入端,父进程管道中读取,即可获得shell命令输出,代码如下:   /**   *..., const char *type);   该函数作用是创建一个管道,fork一个进程,然后执行shell,而shell输出可以采用读取文件方式获得。...Linux shell脚本也是一个强大工具,我们可以根据需要编制脚本,然后在程序中调用自定义脚本

5.6K20

Shell函数定义

Shell基础入门 linux系统是如何操作计算机硬件CPU,内存,磁盘,显示器等?使用linux内核操作计算机硬件Shell介绍......重定向:输入输出 重定向介绍 标准输入介绍 键盘读取用户输入数据,然后再把数据拿到Shell程序中使用; 标准输出介绍 Shell程序产生数据,这些数据一般都是呈现到显示器上供用户浏览查看; 默认输入输出文件...2 将错误信息输出到显示器上 每个文件都有一个唯一 文件描述符fd, 后面会通过唯一 文件描述符fd 操作对应信息 Shell程序操作输入输出时用到这3个文件 Shell程序默认会stdin文件中读取输入数据...Shell程序默认会向stdout文件中输出正确数据 Shell程序默认会向stderr文件中输出错误信息 这3个文件用于临时传输数据使用 重定向输入输出介绍 标准输入是数据默认键盘流向程序,如果改变了它方向...标准输出是数据默认程序流向显示器,如果改变了它方向,数据就流向其它地方,这就是输出重定向。 Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向.

3.6K30

【翻译】XV6-DRAFT as of September 3,2014 第0章 操作系统接口

按照Unix惯例,进程文件描述符0读入(标准输入),文件描述符1输出标准输出),将错误信息写入到文件描述符2(标准错误)。...下面的程序片段(实际上就是cat本质)标准输入拷贝数据到标准输出,如果遇到了错误,它会往标准错误中输出错误消息。...同样,cat也不知道它是否写到了一个控制台、一个文件或其他什么地方。文件描述符使用与一些惯例——0是标准输入,1是标准输出,2是标准错误,使我们很轻松地实现了cat。...xv6shell不支持标准错误输出重定向,但现在你知道如何去实现它。...当wc标准输入读取时,它实际上是管道读取数据。父进程管道写端口写入数据,然后关闭了管道文件描述符。

58060

Linux之Shell编程

来启动、 挂起、 停止甚至是编写一些程序. 1.2 shell 编程快速入门-shell 脚本执行方式 1.2.1 脚本格式要求 脚本以#!.../bin/bash 开头 执行脚本需要有执行权限 1.2.2 编写第一个 shell 脚本 需求说明 创建一个 shell 脚本输出 hello world! 案例 #!...程序 done 应用实例 案例 1 : 1 加到 100 输出显示 image.png 1.10 while 循环 基本语法 while [ 条件判断式 ] do 程序 done 应用实例...image.png 1.11 read 读取控制台输入 1.11.1 基本语法 read(选项)(参数) 选项: 指令 描述 -p 指定读取值时提示符; -t 指定读取值时等待时间(秒) , 如果没有在指定时间内输入..., 就不再等待了 参数: 变量:指定读取变量名 1.11.2 应用实例 案例 1: 读取控制台输入一个 num 值 案例 2: 读取控制台输入一个 num 值, 在 10 秒内输入 image.png

1.9K20

shell语法基础_实现shell

预定义变量 三、运算符 四、条件判断 五、流程控制 1. if 语句 2. case 语句 3. for 循环 4. while 循环 六、read 读取控制台输入 ---- 一、Shell 编程入门...案例:编写 Shell 程序当命令行参数为 1 时输出“周一”,是 2 时输出“周二”,其他情况均输出“other”。...; 除此之外 for 循环还有第二个语法; for((初始值;循环控制条件;变量变化)) do 程序 done 案例2:输出 1 加到 100 值。...#i自增 done echo "SUM=$SUM" 运行结果如下: 六、read 读取控制台输入 在我们进行 Shell 编程时候,有时候也需要跟控制台进行交互,比如用户动态输入一些数据,这个时候就需要用到...基本语法为 read(选项)(参数) -p 制定读取值时提示符 -t 指定读取值时等待时间,如果没有在规定时间内输入,则不再等待 案例 1:读取控制台输入一个 num 值; #!

2.6K20

通过JSch运行远程linux主机上shell脚本

如果您看完文章之后,觉得对您有帮助,请帮我点个赞,您支持是我不竭创作动力! 运行远程主机上shell脚本 下面的例子是教给大家如何通过java程序,运行远程主机上shell脚本。...(我讲不是一个黑客学习教程,而是使用用户名密码去执行有用户认证资格主机上shell脚本)。并且通过java程序获得shell脚本输出。...远程shell脚本 下面的代码放入一个文件:hello.sh,脚本内容很简单只是用来测试,回显输出“hello ” #!...(); // 5 秒执行管道超时 channelExec.connect(CHANNEL_TIMEOUT); // 远程主机读取输入流,获得脚本执行结果 byte[] tmp = new byte[1024...= null) { jschSession.disconnect(); } } } } 最终在本地控制台,获得远程主机上shell脚本执行结果。

2.1K00

vb编程入门_python编程入门

预定义变量 三、运算符 四、条件判断 五、流程控制 1. if 语句 2. case 语句 3. for 循环 4. while 循环 六、read 读取控制台输入 一、Shell 编程入门 1....案例:编写 Shell 程序当命令行参数为 1 时输出“周一”,是 2 时输出“周二”,其他情况均输出“other”。...; 除此之外 for 循环还有第二个语法; for((初始值;循环控制条件;变量变化)) do 程序 done 案例2:输出 1 加到 100 值。...#i自增 done echo "SUM=$SUM" 运行结果如下: 六、read 读取控制台输入 在我们进行 Shell 编程时候,有时候也需要跟控制台进行交互,比如用户动态输入一些数据,这个时候就需要用到...基本语法为 read(选项)(参数) -p 制定读取值时提示符 -t 指定读取值时等待时间,如果没有在规定时间内输入,则不再等待 案例 1:读取控制台输入一个 num 值; #!

3.6K10

Linux Shell编程

对于JavaEE和 Python程序员来说,工作需要,你老大会要求你编写一些 Shell脚本进行程序或者是服务器维护,比如编写一个定时备份数据库脚本。.../bin/bash开头 脚本需要有可执行权限 # 编写第一个Shell脚本 需求说明:创建一个Shell脚本输出hello world! vim hello.sh #!.../bin/bash #案例:请编写一个shell程序,如果输入参数,大于等于60,则输出“及格了”,如果小于60,则输出“不及格" if [ $1 -ge 60 ] then echo...echo "执行结果=$SUM" # read读取控制台输入 # 基本语法 read (选项) (参数) 选项 -p:指定读取值时提示符 -t:指定读取值时等待时间(秒),如果没有在指定时间内输入.../bin/bash #案例1:读取控制台输入一个NUM1值 read -p "请输入一个数NUM1=" NUM1 echo "你输入NUM1=$NUM1" #案例2:读取控制台输入一个NUM2值,在10

36.3K20

案例驱动 :入门到掌握Shell编程详细指南

入门到掌握shell编程,学习起来花费时间较久,建议收藏起来慢慢学习。...---- 文章目录 一、概述 二、入门案例 三、Sell中变量 系统变量 自定义变量 特殊变量 四、运算符和条件判断 运算符 条件判断 五、流程控制 if case while for 六、读取控制台输入内容.../bin/bash开头(指定解析器) 案例:创建一个Shell脚本输出hello shell 第一步:编写shell脚本 首先创建一个helloShell.sh脚本文件,然后输入如下内容 #!...语法:export 变量名 案例:使用shell脚本输出变量B 特殊变量 $n n(功能描述:n为数字,0代表该脚本名称, 案例:输出脚本文件名称、输入参数1和输入参数2 值...) - 选项: - `-p:指定读取值时提示符;` `-t:指定读取值时等待时间(秒)` 参数 变量:指定读取变量名 案例:提示5秒内,读取控制台输入名称 #!

1.1K20

.NET Core 跨平台执行命令、脚本

一.前言 我们可能会遇到需要在程序中执行一些系统命令,来获取一些信息;或者调用shell脚本。.NET Core 目前已经可以跨平台执行,那么它如何跨平台执行命令呢,请看下面的讲解。...RedirectStandardError:指示应用程序错误输出是否写入到流中。 RedirectStandardInput:指示是否应用程序读取应用程序输入流。...(2).主要方法 Start :启动进程 BeginErrorReadLine:异步开始读取应用错误输出。 BeginOutputReadLine:异步开始读取应用标准输出。...CancelErrorRead:取消读取错误输出。 CancelOutputRead:取消读取标准输出。 Close:释放与此组件关联所有资源。...执行结果可以看出,我们通过编写程序来执行dotnet --info命令获取结果几乎一样,只有第一行提示,我们通过cmd执行命令输出是中文,我们通过程序调用执行输出是英文,这个问题,有兴趣朋友可以研究一下

1.9K20

如何友好把Python和Bash结合在一起

使用bash和其他类似的shell,可以使用许多强大功能,例如管道,文件名通配符以及称为脚本文件中读取命令功能。 让我们看一个真实示例来演示命令行功能。...在这种情况下,shell脚本就是答案。Shell脚本是由Shell读取并按顺序执行命令列表。Shell脚本还支持某些编程语言基础知识,例如变量,流控制和数据结构。...编写以UNIX方式运行Python程序(即读入标准输入并写入标准输出)与为现有的shell命令(如cat和sort)编写Python替代品一样强大。 让我们以本文前面已解决问题为基础。...首先,它从通过sys.stdin对象公开标准输入中读取输入。任何输出都将写入sys.stdout对象,这是在Python中实现标准输出方式。...在这种情况下使用Python优点如下: 与cat和sort等工具链接能力。简单实用程序(逐行读取文件并以数字方式对文件进行排序)由久经考验UNIX命令处理。

96510

Linux 命令(239)—— expect 命令

-i 交互式输入 expect 命令,而不是文件中读取。通过 exit 命令或 EOF 终止。 -n 不使用 ~/.expect.rc 脚本。...-N 不使用 $exp_library/expect.rc 脚本。 -c 指定要执行 expect 命令。命令应该加引号,以防止被 Shell 分解。...命令按照它们出现顺序执行。 -f 文件读取命令,仅用于使用#!时。如果文件名为"-",则从stdin读取(使用"./-"文件名为-文件读取)。...send_user [-flags] string 用来打印指定字符串到标准输出,相当于 Shell echo。 exit [-opts] [status] 退出 expect 脚本。...puts 输出变量。 interact [string1 body1] ... 执行完成后保持交互状态,控制权交给控制台(手工操作)。否则完成后会退出。

2K61

图形化开放式生信分析系统开发 - 5 生信分析流程服务器端运行

在上文图形化开放式生信分析系统开发 - 4 生信分析流程图形化设计 讨论了生信分析pipeline图形化,如何用图形方式显示生信pipeline,但是pipeline脚本按照变量形式保存之后,如何运行...本程序作为控制端,可以和分析端部署在一台机器,也可以通过联网方式连接。...综合考虑,结合软件设计目标,这里选择远程模式 运行服务器节点: 服务器节点信息: 经常手动分析脚本朋友大家习惯可能是,ssh远程登录Linux服务器,在shell控制台输入各种脚本,软件。...脚本 对应于服务器账户信息中变量 录入系统样本信息:样本编号,${sn} Run ID ${id}等等 通过将保存shell脚本,将脚本变量用以上信息替换为实际需要运行脚本,通过远程连接发送指令在服务器上运行...运行过程:状态监控,结果判断 发送完脚本,服务器端运行状态需要和控制端保持连接,监控运行状态,获取运行输出

77400

Process类详解

每个进程生成器ProcessBuilder对象管理这些进程属性: 命令 是一个字符串列表,它表示要调用可执行外部程序文件及其参数(如果有)。 环境 是变量 到值 依赖于系统映射。...创建子进程没有自己终端或控制台。...处理建议 对于那些从来不会读取其输入流进程,不对其提供输入非但无害,且还有益。而对于那些从来不会发送数据到其输出流或者错误流进程,不对其输出流或者错误流进行清空同样是有益无害。...,有时候当进程输出信息很大时候回导致缓冲区被填满,如果不及时处理程序会阻塞,解决方法就是处理缓冲区中信息,开两个线程分别去处理标准输出流和错误输出流 Process process = Runtime.getRuntime...shell脚本执行完成 process.waitFor();

1.5K20

一篇文章了解到入门shell

4.5.4、重定向 大多数 UNIX 系统命令终端接受输入并将所产生输出发送回到您终端。一个命令通常从一个叫标准输入地方读取输入,默认情况下,这恰好是你终端。...还有一种用法,把标准错误直接输出标准输出,并且输出到文件file command > file 2>&1 /dev/null 文件 这个是一个特殊文件,他是一个黑洞,写入到它内容都会被丢弃,如果我们不关心程序输出...5.2、cat 在本文中,我们已经多次用到cat,他作用就是读取文件输出标准输出上,也就是我们终端。...5.2、tail 类似上面的例子,我们要验证程序是不是在后台,每一秒输出一个数字到文件,使用cat读取,需要不断多次查看,一次cat只能输出一次。...tail非常适合查看这种日志类文件,他作用是读取文件末尾几行输出标准输出上。

2.1K30
领券