我刚刚切换到zsh. 但是,我真的不喜欢time内置命令如何输出它的计时命令。我更喜欢bash样式输出。有谁知道怎么切换吗?
Zsh:
[casqa1:~/temp]$ time grep foo /dev/null
/usr/local/gnu/bin/grep --color -i foo /dev/null 0.00s user 0.00s system 53% cpu 0.004 total
Run Code Online (Sandbox Code Playgroud)
重击:
[casqa1:~/temp]$ bash
casqa1.nyc:~/temp> time grep foo /dev/null
real 0.0
user 0.0
sys 0.0
Run Code Online (Sandbox Code Playgroud)
谢谢,
/YGA
Den*_*son 35
这是相当接近的:
$ TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S'
$ time sleep 1
real 1.01s
user 0.00s
sys 0.00s
Run Code Online (Sandbox Code Playgroud)
另一种选择是禁用内置命令并使用操作系统提供的时间二进制文件。我有以下内容.zshrc:
disable -r time # disable shell reserved word
alias time='time -p ' # -p for POSIX output
Run Code Online (Sandbox Code Playgroud)
这样时间输出到 STDERR。
关于丹尼斯威廉姆森非常有用的答案(“相当接近”的部分)的一个小精度:bash 的内置time输出到stderr,而 zsh 的输出到stdout.
这个命令可以说明区别: time (echo abc) 2>/dev/null
在 bash 中,它输出:
$ time (echo abc) 2>/dev/null
abc
Run Code Online (Sandbox Code Playgroud)
在 zsh 中,使用建议的 TIMEFMT 变量:
$ time (echo abc) 2>/dev/null
abc
real 0.00s
user 0.00s
sys 0.00s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10341 次 |
| 最近记录: |