
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