"time" 이후의 명령이 성공한 경우에만 "time"에 대한 출력 표시

"time" 이후의 명령이 성공한 경우에만 "time"에 대한 출력 표시

timetime전달된 명령이 성공한 경우에만 명령의 출력이 표시되기를 원합니다 . 이 같은:

( 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

관련 정보