Próbuję przeanalizować wynik polecenia time w bashu - i nawet powstrzymać go przed wydrukowaniem jego wyjścia, gdy go wołam. To jest mój kodu testu:Trudno przeanalizować komendę czasu (bash)
#!/bin/bash
TIME=`time ls -lh > /dev/null`
echo "Testing..."
echo $TIME
to obecnie drukuje:
{blank-line}
real 0m0.064s
user 0m0.002s
sys 0m0.005s
Testing
{blank-line}
Więc wydaje się, że wartości przypisanej do $TIME
jest pusty wiersz na początku czasu wydruku. Potrzebuję uzyskać wartość sekundową linii sys - czyli "0.005". Mam gwarancję, że będę miał tylko sekundy, więc nie potrzebuję niczego przed "m" - jednak część sekundowa może być w postaci xx.xxx, jeśli przejdzie> = 10 sekund. Obecnie nie mam pojęcia, jak tłumić wynik "czasu", przechwycić go zamiast pustej linii, ani parsować, aby uzyskać wartości, których potrzebuję.
Każda pomoc będzie mile widziane ...
Ach, nie zdawałem sobie sprawy, że wyjście czasu do 'STDERR'. Jak mogę to przechwycić do zmiennej $ TIME? – Stephen