Я хочу измерить время выполнения некоторого SQL-запроса в postgresql. Используя BASH встроенное время, я мог бы сделать следующее:
$ time (echo "SELECT * FROM sometable" | psql)
Мне нравится время GNU, которое предоставляет больше форматов. Однако я не знаю, как это сделать с трубопроводом. Для простоты я использую ls | wc
в следующих примерах:
$ /usr/bin/time -f "%es" (ls | wc)
-bash: syntax error near unexpected token `('
$ /usr/bin/time -f "%es" "ls | wc"
/usr/bin/time: cannot run ls | wc: No such file or directory
Если я никоим образом не группирую трубку, он не жалуется:
$ /usr/bin/time -f "%es" ls | wc
0.00s
Но, по-видимому, это только измеряет первую часть трубы, как показано в следующем примере
$ /usr/bin/time -f "%es" ls | sleep 20
0.00s
Итак, вопрос в том, что является правильным синтаксисом для GNU Time с линией трубопровода?