如何将可选参数传递给“time”命令

如何将可选参数传递给“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

我究竟做错了什么?

我如何使用像-o somefile.txtwith这样的选项time

我使用 Linux Ubuntu 18.04bash作为我的终端。

答案1

bash shell 正在将命令中的第一个单词“time”评估为保留字time,并等待第二个单词的命令,即-o,因此它正在打印:-o: command not found

bash手册我们可以看到原因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

相关内容