Bash

如何將可選參數傳遞給time命令

  • April 21, 2022

man time表明它有一些選項,像這樣,只將time輸出寫入文件而不是stderr

-o FILE, --output=FILE

所以,我嘗試使用它

$ time -o out.txt ls
-o: command not found

real    0m0.081s
user    0m0.070s
sys 0m0.012s

這不起作用!它說-o: command not found

證明out.txt不存在:

$ cat out.txt
cat: out.txt: No such file or directory

我究竟做錯了什麼?

如何使用 with 之類-o somefile.txt的選項time

我在 Linux Ubuntu 18.04 上,bash用作我的終端。

bash shell 將命令中的第一個單詞“time”評估為保留字time,並在第二個單詞處等待命令,即-o,因此它正在列印:-o: command not found

bash 手冊中,我們可以看到原因time是保留字:

使用 time 作為保留字允許 shell 內置函式、shell 函式和管道的計時。外部時間命令無法輕鬆地對這些時間進行計時。

為了使用該time命令並使用其有用的參數,您必須如此指示 bash shell。最好使用該command實用程序執行此操作:

command time -o out.txt ls

或者您可以使用完整路徑:

/usr/bin/time -o out.txt ls

甚至引用它:

"time" -o out.txt ls

或者用反斜杠轉義它:

\time -o out.txt ls

另見文章:12

引用自:https://unix.stackexchange.com/questions/699799