首页 > 手机 > 配件 > 深度学习pipeline提速10倍,pipelines

深度学习pipeline提速10倍,pipelines

来源:整理 时间:2022-04-02 12:55:38 编辑:华为40 手机版

Linux中,如何取得pipeline中每一个命令的返回值?

Linux中,如何取得pipeline中每一个命令的返回值

老胡的看法:pipeline是我们使用Linux的日常操作,一般来说使用pipeline是为了简化交互流程,目的在于得到最后的结果。缺点就是在设计pipeline语句的时候,只能看到最后的输出值,不太方便调试。老胡在这里给出几个办法,可以输出pipeline中每一个阶段语句的返回值:一、使用shell选项pipefailpipefail是ksh、zsh和bash中都使用的一个shell选项,它的作用是告诉shell输出pipeline中未成功执行返回的其它状态值。

这大概是最简单最方便的一个方式了。不过这个方法的缺点是只能输出pipeline中最后一段返回值不为0的值。使用的方法是在shell中用set指令指定这个选项:set -o pipefail二、使用shell变量$PIPESTATUSshell有一个内置变量,它是一个数组,用来存放pipeline中每一段的返回状态,bash中的变量名字是大写,zsh中是小写的$pipestatus。

如果我们想获取pipeline中每一段的返回状态,只需要按照访问数组的方式访问$PIPESTATUS就可以了。如果想要得到所有段的返回值,数组下标使用@:三、利用输出重定向在多段pipeline中,我们还可以利用打印语句和输出重定向来实现每一段的pipeline返回值输出。具体思路是:打开1个文件描述符,并重定向到标准输出;设计pipeline,将需要的段中命令返回值输出到新描述符;其余段的命令返回值均使用类似的方式输出到新描述符;将新描述符重定向到先前声明的描述符;比如:总结一下,关于pipeline各段命令返回值的输出,老胡大致上就这么几个思路了。

文章TAG:pipelinepipelines提速深度学习

最近更新