Odpowiedzi:
Spróbuj po prostu time
zamiast timethis
.
Pamiętaj jednak, że często istnieje wersja czasu wbudowana w powłokę i wersja binarna, która daje wyniki w różnych formatach:
$ time wget -q -O /dev/null https://unix.stackexchange.com/
real 0m0.178s
user 0m0.003s
sys 0m0.005s
vs
$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps
W przeciwieństwie do programu „timethis” odzyskujesz trzy wartości. Jest to podzielone na Co to jest „czas systemowy”, gdy używa się „czas” w wierszu poleceń , ale w skrócie: rzeczywisty oznacza „czas zegara ściennego”, podczas gdy użytkownik i sys pokazują czas zegara procesora, podzielony między zwykłe kody i wywołania systemowe.
Używając pliku wykonywalnego time
zamiast wbudowanej powłoki, możesz określić format wyjściowy i wartości. Np. Uzyskaj rzeczywisty czas, który upłynął wraz z nazwą polecenia i parametrami
/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds
Zauważ, że musisz podać ścieżkę time
, w przeciwnym razie domyślnie użyjesz wbudowanej powłoki.
/usr/bin
jest w ich ŚCIEŻCE?
time
zostanie użyte wbudowane narzędzie powłoki .
command time
lub \time
uruchomić narzędzie zamiast wbudowanego.
@galois: Różne powłoki mają garść „wbudowanych” poleceń, które mają pierwszeństwo przed wszystkim na ścieżce. Zwykle jest to korzystne; wbudowane będą działały szybciej (ponieważ nie wywołuje zewnętrznego pliku) i zazwyczaj dają pożądany rezultat (tj. w przypadku polecenia czasowego zwykle nie dbasz o wersję, której używasz, chyba że chcesz użyć opcji „ --format ”).
Tak więc „czas” bez żadnych znaków specjalnych (takich jak /), aby wyglądało to tak, jakby ścieżka zakończyła się uruchomieniem wbudowanego, niezależnie od tego, jak wygląda ŚCIEŻKA.
Aby wymusić na powłoce użycie polecenia czasu zewnętrznego, musisz podać ścieżkę