获取命令的持续时间和命令结果

问题描述 投票:0回答:1

我正在通过工具

time
测量命令持续时间,但命令的结果被隐藏了。例如,我正在测量
find
ls
的持续时间,我看到了持续时间,但没有看到文件列表。

v=&&X=$((time v=$(ls)) 2>&1 | grep real)&&echo $X&&echo "$v"
u@debian:~$ v=&&X=$((time v=$(ls)) 2>&1 | grep real)&&echo $X&&echo "$v"
real 0m0.004s

u@debian:~$

我希望

X
v
变量都可访问。
X
应返回
real 0m0.004s
v
应返回文件列表。

如何测量命令的持续时间并获取命令的结果?

bash sh
1个回答
0
投票

这个 Shellcheck 干净的 Bash 代码演示了一种实现您想要的功能的方法:

#! /bin/bash -p

ls_time=$({ time ls; } 2>&1)
ls_output=${ls_time%$'\n'real*}
time_output=${ls_time:${#ls_output}+1}

X=${time_output%%$'\n'*}
v=${ls_output%$'\n'}

declare -p X v
© www.soinside.com 2019 - 2024. All rights reserved.