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

为什么命令行程序没有输出

问题描述 为什么程序没有输出?请看下面的命令 tail -f logfile | grep 'foo bar' | awk......执行上述命令,你会发现你程序没有产生任何输出,只有当logfile内容足够多时候才会产生输出,这是怎么回事呢?...原因 在非交互模式下,大多数UNIX命令行程序都会缓冲它们输出,这就意味着程序会缓冲一定数量(通常是4kilobytes)字符再进行输出,而不是直接输出每个字符。...在交互式控制台会话中执行tail -f命令是实时,但是当命令行程序通过管道连接其它程序时候,命令行程序可能就无法识别最终输出是否需要(接近)实时了。...现在问题是如果grep命令输出是通过管道连接到其它程序(例如上例中awk命令)的话,它会启用输出缓冲区以提高效率。

1.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    优雅输出错误-assert

    在正常情况,我们会通过,if,else进行判断一个接口条件是否满足,不满足则输出错误,例如 在IM系统中,申请入群接口,需要以下判断: $param = $this->request()->getRequestParam...else,return,writeJson等重复代码.那么,有没有一个办法,进行if,else等封装,直接一行代码实现 判断+输出错误呢?...assert断言 断言是编程术语,表示为一些布尔表达式,程序员相信在程序某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。...在此示例中,可以看出,断言作用在于确保程序正常执行,如果出错则代表程序有问题,需要修bug  业务断言 我们可以通过断言(确保其条件正确,使得程序往下执行)说法,在业务中封装: function ...$userInfo,'你已经是本群成员'); }catch (\Throwable $throwable){     //拦截抛出异常,然后直接输出json 错误消息     $this->writeJson

    1.3K20

    将make输出(标准输出标准错误输出)重定向到文件 _

    方式 描述符 含义 stdin 0 标准输入 stdout 1 标准输出 stderr 2 标准错误输出 1.想要把make输出全部信息,输出到某个文件中 最常见办法就是:make xxx > build_output.txt...此时默认情况是没有改变2=stderr输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到。...2.只需要把make输出错误(及警告)信息输出到文件中ing,可以用: make xxx 2> build_output.txt 相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出正常信息...C++ 例如: make 2> my_make_err.log 3.只需要把make输出正常(非错误,非警告)信息输出到文件中,可以用: make xxx 1> build_output.txt...相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到

    4.7K20

    为什么这段代码输出是”Hello World”

    Stackoverlfow.com上有一篇有趣讨论帖: 在这篇帖子里提到了如下程序: 明明是在程序里使用了java.util.Ramdom()函数产生随机数,为什么每次打出结果都是Hello world...各位程序员,你们怎么看?...首先看一下这个程序工作原理: 通过这句命令首先得到六个数是: 8 5 12 12 15 0 然后,通过new Random(-147909649).nextInt(27)得到6个数是: 23 15...这就是为什么每次运行该程序都会产生同样结果原理啦~ 当然,关于这个话题,高手林立Stackoverflow上是不缺乏懂行专家和见解。...也就是说,计算机所产生随机数,实际上是有某种规律或者模式“伪随机数”(Pseudo random number)。 如何用计算机程序产生高质量随机数,这是计算机理论科学中一个非常重要课题。

    95620

    为什么LDO输出不稳定?

    ,负载为R6和R5并联,此时负载电流大约是700mA,我们仿真的方法就是改变ESR电阻R4,切换负载电流,观察输出电压变化。...下图是R4 ESR取0.1Ω时输出结果,黑色曲线是从70mA到700mA反复切换负载电流电流波形,红色是输出电压波形,可以看到电流变化时,输出电压只有微小波动,整体还是稳定在3.2V。...下图是把ESR改为0.001Ω后结果,刚开始输出是稳定,一切换负载电流时,输出就异常。 下图是把ESR改为100Ω后结果,刚开始输出是稳定,切换负载电流时,输出也容易出现异常。...总之,LDO输出电容对于维持稳压器稳定性至关重要,并且必须满足最小电容和等效串联电阻 (ESR) 要求。...输出电容增加会影响环路稳定性和瞬态响应, 电容容值和ESR,太大或太小都不行 ,都容易引起环路震荡。

    1K10

    为什么这段代码输出是”Hello World”

    Stackoverlfow.com上有一篇有趣讨论帖: 在这篇帖子里提到了如下程序: 明明是在程序里使用了java.util.Ramdom()函数产生随机数,为什么每次打出结果都是Hello world...各位程序员,你们怎么看?...首先看一下这个程序工作原理: 通过这句命令首先得到六个数是: 8 5 12 12 15 0 然后,通过new Random(-147909649).nextInt(27)得到6个数是: 23 15...这就是为什么每次运行该程序都会产生同样结果原理啦~ 当然,关于这个话题,高手林立Stackoverflow上是不缺乏懂行专家和见解。...也就是说,计算机所产生随机数,实际上是有某种规律或者模式“伪随机数”(Pseudo random number)。 如何用计算机程序产生高质量随机数,这是计算机理论科学中一个非常重要课题。

    99220

    crontab 脚本错误日志和正确输出写入到文件

    如果crontab不重定向输出,并且crontab所执行命令有输出内容的话,是一件非常危险事情。...不输出内容 */5 * * * * /root/XXXX.sh &>/dev/null 2>&1 将正确和错误日志都输出到 /tmp/load.log */1 * * * * /root/XXXX.sh...& 名词解释 在shell中,每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件文件描述符分别为0,1和2。...所以这里2>&1意思就是将标准错误输出到标准输出当中。 > 就相当于 1> 也就是重定向标准输出,不包括标准错误。...通过2>&1,就将标准错误重定向到标准输出了(stderr已作为stdout副本),那么再使用>重定向就会将标准输出和标准错误信息一同重定向了。

    5.6K30

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

    但是,实际情况并不是我们想那么简单。比如我文前提到问题:别人提供了一个Console控制台程序,我们将如何获取其执行输出结果呢?...这三个参数似乎就点中了标题中两个关键字“标准输出”、“标准错误输出”。是的!我们正是靠这几个参数来解决我们所遇到问题。那么如何使用这些参数呢?         我们选用还是老方法——管道。...设置标准输出和标准错误输出句柄 si.hStdError = hWrite; // 把创建进程标准错误输出重定向到管道输入 si.hStdOutput = hWrite...我们使用STARTF_USESTDHANDLES原因是:我们使用了标准输出和标准错误输出句柄。...也就是说,我们设置这些句柄要有可继承性。这就解释了我们之前为什么在创建管道时要将句柄可继承性设置为TRUE原因。         一般来说,我们要代理程序已经输入好信息了。

    3.8K10

    python程序输出无内容解决方式

    问题缘由 某项目中使用python脚本方式将日志文件中数据持续转换格式输出到另一文件中以供其他日志分析应用使用。...但是当后台运行采取重定向方式输出到某一文件时,发现并没有内容输出,命令如下: python xxx.py xxx.log & 测试发现,当前台直接输出到终端时正常,使用后台运行重定向方式输出到文件中时无法输出...解决办法 发现是在程序运行时,输出有缓存,只有当程序运行结束或者缓冲区满后才会输出。因为程序是一致在运行所以不可能等待程序结束在输出。并且要求是有实时性所以等缓冲区满输出方式也不可取。...如果选择是2就是使用了pycharm提供虚拟解释器,又因为passwd.txt文件不是在虚拟环境中所以就没有输出。 点击3然后选择你已经下载好解释器即可。...以上这篇python程序输出无内容解决方式就是小编分享给大家全部内容了,希望能给大家一个参考。

    3.7K10

    程序 + 政务,可以碰怎样火花

    在政务服务领域,小程序也以其便捷、迅速、功能强大而获得青睐,以外交部、工商总局、农业部为代表部委级单位开发政务服务小程序,更是独领风潮。...下面就结合小程序发布三个多月来一些发展,来谈谈我对小程序在政务领域应用一些思考。 一、从科斯定律说起,为什么要做小程序? 到底小程序是什么?什么样场景更适合小程序?...而小程序,是帮你触达和服务用户最好工具。 三、部委小程序引领风潮 小程序即用即走特点和公共服务有着天然结合点。...除了部委级程序,已经上线微信城市服务这800多项公共服务,也都陆续在“小程序化”。   四、小程序和H5 “我都已经有公众号+H5了,为什么还要做小程序?”我想这个是很多开发者问题。...但这个小程序,却在短短15天时间里,用户增长了80倍,累积用户已经超过了20万。 当我了解到这些数据时候我觉得特别的惊奇,为什么会有这么大增长?我问开发者你们是不是做了什么推广?他说并没有!

    1.8K90

    程序员在写代码时候bug太多会给计算机造成损坏吗?

    程序员在具体写代码过程中经常出现bug是非常常见事情,特别是对于一些新手由于对规则讲述不清晰也会造成问题出现,新手在写代码时候更加容易出现一些异常错误,因为新手在具体实施过程中可能基本代码逻辑都会存在问题...即使非常成熟程序员写代码也会有bug存在,因为代码细节还是非常繁多,而且只要是软件产品就会有bug存在,即使是已经运行多年产品,如同只要是上网设备都可能存在被攻击可能性。 ?...如何避免写代码出现bug,根本问题在于多做不要怕写代码同样问题出现多了,自然就会想办法去规避问题,所以越是经验丰富程序员越是对代码把握能力强,而且老程序员在对待出现问题还能推演出不对问题所在...,所以经历项目多程序员在处理紧急问题时候表现更加沉稳。...好程序代码在运行过程中不但损耗少,而且还非常稳定,如果写代码对于硬件资源占据比例非常大,长时间运行系统就容易变得不稳定,同样是一直在运行程序但是用时间长就能看出好坏了,bug是程序开发过程中必不可少因子

    1.8K20

    【Java 基础篇】Java 标准输出流详解:输出程序之美

    Java 编程中,标准输出流是一个重要概念。它允许我们将程序输出信息显示在终端或控制台上,这对于调试、用户界面和与用户交互非常重要。...标准错误输出 除了标准输出流 System.out,Java 还提供了标准错误输出流 System.err,它通常也表示为 java.io.PrintStream 类实例。...标准错误输出流用于打印错误信息,通常是红色显示,以便于识别。 与标准输出类似,你可以使用 System.err 来打印错误消息,例如: System.err.println("这是一个错误消息。")...(originalOut); } 这样,你可以在程序中根据需要切换标准输出目标。...此外,我们还介绍了如何将输出重定向到文件或字符串,以及一些处理错误输出方法。 标准输出流对于调试和日志记录非常有用,因此请牢记这些知识,以便在开发 Java 应用程序时能够更好地利用它们。

    58520

    Shell标准输入、标准输出和标准错误重定向总结

    shell脚本只使用标准输入、标准输出和标准错误 Shell会自动为我们打开和关闭0、1、2这三个文件描述符,我们不需要显式地打开或关闭它们。...标准输入是命令输入,默认指向键盘; 标准输出是命令输出,默认指向屏幕; 标准错误是命令错误信息输出,默认指向屏幕。...如果没有显式地进行重定向,命令通过文件描述符0从屏幕读取输入,通过文件描述符1和2将输出错误信息输出到屏幕。...把标准输出重定向到filename2文件中 command 0 filename2 把标准输入重定向到filename文件中,把标准输出重定向到filename2文件中 重定向使用有如下规律...: 1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中一个。

    3K20
    领券