time
我希望仅当已传递的命令time
成功时才显示命令的输出。像这样的东西:
( time wget -pq --delete-after https://www.example.com ) 2>&1 || echo fail
问题是,如果wget
失败,我仍然收到输出time
(这是合乎逻辑的,因为它测量命令失败所需的时间)。我的目标是将输出保存到变量中,并在我的变量中包含0m0.100s
或。fail
有谁知道我该如何以体面的方式做到这一点?
答案1
你可以这样做:
$ if var=$( { time true; } 2>&1 ); then echo "$var"; else echo fail; fi
real 0m0.000s
user 0m0.000s
sys 0m0.000s
$ if var=$( { time false; } 2>&1 ); then echo "$var"; else echo fail; fi
fail