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