【深度學(xué)習(xí)pipeline提速10倍,pipelines】
Linux中,如何取得pipeline中每一個(gè)命令的返回值?
老胡的看法:pipeline是我們使用Linux的日常操作,一般來說使用pipeline是為了簡(jiǎn)化交互流程,目的在于得到最后的結(jié)果 。缺點(diǎn)就是在設(shè)計(jì)pipeline語句的時(shí)候,只能看到最后的輸出值,不太方便調(diào)試 。老胡在這里給出幾個(gè)辦法,可以輸出pipeline中每一個(gè)階段語句的返回值:一、使用shell選項(xiàng)pipefailpipefail是ksh、zsh和bash中都使用的一個(gè)shell選項(xiàng),它的作用是告訴shell輸出pipeline中未成功執(zhí)行返回的其它狀態(tài)值 。
這大概是最簡(jiǎn)單最方便的一個(gè)方式了 。不過這個(gè)方法的缺點(diǎn)是只能輸出pipeline中最后一段返回值不為0的值 。使用的方法是在shell中用set指令指定這個(gè)選項(xiàng):set -o pipefail二、使用shell變量$PIPESTATUSshell有一個(gè)內(nèi)置變量,它是一個(gè)數(shù)組,用來存放pipeline中每一段的返回狀態(tài),bash中的變量名字是大寫,zsh中是小寫的$pipestatus 。
如果我們想獲取pipeline中每一段的返回狀態(tài),只需要按照訪問數(shù)組的方式訪問$PIPESTATUS就可以了 。如果想要得到所有段的返回值,數(shù)組下標(biāo)使用@:三、利用輸出重定向在多段pipeline中,我們還可以利用打印語句和輸出重定向來實(shí)現(xiàn)每一段的pipeline返回值輸出 。具體思路是:打開1個(gè)文件描述符,并重定向到標(biāo)準(zhǔn)輸出;設(shè)計(jì)pipeline,將需要的段中命令返回值輸出到新描述符;其余段的命令返回值均使用類似的方式輸出到新描述符;將新描述符重定向到先前聲明的描述符;比如:總結(jié)一下,關(guān)于pipeline各段命令返回值的輸出,老胡大致上就這么幾個(gè)思路了 。
推薦閱讀
- 學(xué)習(xí)5個(gè)充電方法,電動(dòng)車最佳充電方法
- 新手學(xué)電腦先學(xué)什么,學(xué)電腦要先學(xué)什么
- 大學(xué)生電腦維修,電腦維修學(xué)習(xí)網(wǎng)站
- Pro可以深度測(cè)試了,華為x3 pro root
- 數(shù)據(jù)恢復(fù)軟件免費(fèi)版,深度數(shù)據(jù)恢復(fù)軟件
- psat考試與sat考試,PSAT
- 華為無線耳機(jī)哪款好,4無線耳機(jī)深度測(cè)評(píng)
- 電腦辦公速成培訓(xùn) 辦公軟件速成
- 用平板電腦可以學(xué)什么軟件哪個(gè)好,買平板學(xué)習(xí)小學(xué)英語
- 十大值得關(guān)注的深度學(xué)習(xí)算法,深度信念網(wǎng)絡(luò)
