Bash如何將可選參數傳遞給
如何將可選參數傳遞給time
命令
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