重新導向 Bash “time” 命令的輸出

來源:互聯網
上載者:User

bash下time是一個很有用的命令,它可以為一段指令碼或一個程式的執行計時,這通常在粗略比較程式執行效率的時候很方便。但是你會發現,time命令輸出的時間文字不能被簡單地重新導向,例如重新導向至一個文字檔,只能顯示在螢幕上,這對於非互動計時很不方便。例如:

time command > file.txt

這篇文章討論了原因和解決辦法(http://blog.csdn.net/seizeF/article/details/5164405)

大致的意思是,當time命令執行時,command運行於當前shell(也就是time所命令所執行的shell)的下一級shell,而time自身的輸出位於當前shell的stderr。像上面所示的那樣重新導向只會使得command的stdout被重新導向至一個文字檔,而不會輸出time自身的輸出內容。

瞭解原理以後,我們可以試圖擷取time的輸出。有兩種方法:

一是捕獲代碼塊的輸出:

{ time command; } 2 > file.txt (注於bash代碼塊大括弧前後需要一個空格)

另一種方法是捕獲子shell進程輸出:

(time command) 2> file.txt

這個問題很有意思。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.