2 linux bash shell command-line
我试图计时以下命令,并最终想要将结果输出到文件(因此使用/ usr/bin/time.但是,正在计时的命令总是seq 1 2而不是整个命令:
/usr/bin/time -v seq 1 2 | parallel ssh-keygen -G /folder/{}.candidate -b 768
Run Code Online (Sandbox Code Playgroud)
有没有办法确保整个命令是定时的,而不仅仅是第一个小部分?
如果您使用bash它更容易使用内置的bash:
$ time cmd1 | cmd2 | cmd3
Run Code Online (Sandbox Code Playgroud)
将整个管道计时.
如果您确实想使用外部time命令,则必须在子shell中运行管道:
$ /usr/bin/time sh -c 'cmd1 | cmd2 | cmd3'
Run Code Online (Sandbox Code Playgroud)
或者你要管道时间而不是计时管道.
这种语法也有很好的副作用,很容易将命令的输出和以下命令的输出分开time:
$ /usr/bin/time sh -c 'cmd1 | cmd2 > cmdout.txt 2> cmderr.txt' 2>> time.txt
Run Code Online (Sandbox Code Playgroud)
但是,它在引号中有一个额外的难度.如果您的命令本身包含引号,则可能需要以难以阅读的方式转义它们.
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |