Command-Line

只有在 time 之後的命令成功時才顯示 time 的輸出

  • February 28, 2019

我希望time僅當已傳遞給的命令成功時才顯示命令的輸出time。像這樣的東西:

( time wget -pq --delete-after https://www.example.com ) 2>&1 || echo fail

問題是,如果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

$ if var=$( { time false; } 2>&1 ); then echo "$var"; else echo fail; fi
fail

引用自:https://unix.stackexchange.com/questions/499492