1. 程式人生 > >Shell關鍵字如何重定向輸出

Shell關鍵字如何重定向輸出

以time為示例來說明Shell關鍵字如何重定向輸出。經常碰到這樣一種場景,需要使用time來測試一條命令執行多少時間,並將其結果重定向到某個日誌檔案中。 time的輸出資訊是列印在標準錯誤輸出上的。time的輸出資訊重定向到檔案裡面,因為time是shell的關鍵字,shell做了特殊處理,它會把time命令後面的命令列作為一個整體來進行處理,在重定向時,time命令本身的輸出並不會被重定向的。可以使用子shell或者{}來處理關鍵字的重定向輸出問題。

  • 利用子shell來重定向輸出

[[email protected] ~]# (time ls) > log.txt 2>&1 
file1
file2
file3
......
real 0m0.004s
user 0m0.001s
sys  0m0.004s
  • 利用{}來重定向輸出

[[email protected] ~]# { time ls; }> log.txt 2>&1 
file1
file2
file3
......
real 0m0.004s
user 0m0.001s
sys  0m0.004s