Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 如何捕获几个命令的输出?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_489_0@

概述

我有命令产生属于不同命令的输出. s=$(time dd if=<source> of=/dev/null bs=<number> count=<number> 2>&1) $s将仅包含来自dd命令的输出.我怎样才能有另一个包含时间输出的变量? 请尝试以下方法: s=$({ time dd ... > /dev/null;} 2>&1) Chepners的答案给了我更好的灵感: s=$(exec
我有命令产生属于不同命令的输出.

s=$(time dd if=<source> of=/dev/null bs=<number> count=<number> 2>&1)

$s将仅包含来自dd命令的输出.我怎样才能有另一个包含时间输出的变量?

解决方法

@H_874_28@ 请尝试以下方法

s=$({ time dd ... > /dev/null;} 2>&1)

Chepners的答案给了我更好的灵感:

s=$(exec 2>&1; time dd ... > /dev/null)

$()已经是子sHell,因此无需创建额外的子sHell.把exec 2>& 1;在命令重定向整个子sHell的stdout之前,在命令之后放置它会使它成为命令的一部分,因此仅应用于传递给时间的命令.省略exec和分号将尝试执行内置的系统时间二进制intead,如果不存在则输出错误.省略exec但保留分号将不起作用,因为只会导致重新定向新的分叉进程,并且内置时间不会是新进程.

哦,顺便说一下,> / dev / null不会将时间本身的输出转储到/ dev / null,因为它也是时间执行的命令的一部分,并且不会应用于时间本身.

大佬总结

以上是大佬教程为你收集整理的linux – 如何捕获几个命令的输出?全部内容,希望文章能够帮你解决linux – 如何捕获几个命令的输出?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
猜你在找的Linux相关文章