Присваивать имя переменной для результата запроса sqlite3 в bash при использовании << EOF - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть скрипт bash следующим образом

#!/usr/bin/env bash
cd /Users/amar/Documents/ThesisCode/CEP_codes/mqtt-receiver

sqlite3 database <<EOF
SELECT sum(detection_time - generation_time)/count(*) from mobile_cep_data;
SELECT ((max(detection_time)- min(detection_time))*1000)/count(*) from mobile_cep_data;
EOF

это дает мне результат как

15
12

Как я могу получить результат как

latency   = 15
thoughput = 12

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

@ Ответ Сайруса хорош и демонстрирует полезную технику, и поэтому я проголосовал за нее, но я хотел бы отметить, что вы также можете сделать:

sqlite3 database <<EOF
SELECT 'latency   = ',
       sum(detection_time - generation_time)/count(*) from mobile_cep_data;
SELECT 'thoughput = ',
       ((max(detection_time)- min(detection_time))*1000)/count(*) from mobile_cep_data;
EOF
0 голосов
/ 29 апреля 2018

Заменить

<<EOF

с

<<EOF | sed '1s/^/latency   = /;2s/^/thoughput = /'
...