Я пытаюсь сохранить результаты fping в переменной в Bash, это должно быть легко, но я просто не могу заставить его работать.Я пробовал различные методы, пытался использовать такие вещи, как AWK и CUT для захваченной переменной, но получал пустые переменные.
Мой мыслительный процесс выглядит следующим образом.
- набрав fping 8.8.8.8 -c 2 дает мне вывод
8.8.8.8 : [0], 84 bytes, 15.1 ms (15.1 avg, 0% loss)
8.8.8.8 : [1], 84 bytes, 15.0 ms (15.0 avg, 0% loss)
8.8.8.8 : xmt/rcv/%loss = 2/2/0%, min/avg/max = 15.0/15.0/15.1
набрав fping -c 1 8.8.8.8 |awk '/ min /' возвращает только последнюю строку, что я и хочу.
8.8.8.8: xmt / rcv /% loss = 2/2/0%, min / avg/ max = 15,0 / 15,0 / 15,1
поэтому введите output = $ (fping -c 1 8.8.8.8 | awk '/ min /')
, и я ожидал сохранить эту последнюю строку в переменной, которую затем смогу затемпроцесс.Но вместо этого я получаю переменную BLANK, даже если она показывает строку, как показано ниже ??
$ output = $ (fping -c 1 8.8.8.8 | awk '/ min /')
8.8.8.8: xmt / rcv /% потерь = 1/1/0%, min / avg / max = 15,1 / 15,1 / 15,1
Сначала я также использовал AWK для извлеченияJsut значения 5 и 6 столбца, чтобы сделать пост-обработку проще
что-то вроде
output = $ (fping -c 1 8.8.8.8 | awk '/ min / {loss = $ 5, time = $ 6} ')
этот синтаксис на данный момент может быть неправильным, но дать переменную типа bwlow со всеми готовыми к извлечению значениями
"2 /2/0% 15,0 / 15,0 / 15,1 "
Что я делаю не так?Как я могу сохранить эту последнюю строку вывода в переменную?Я в порядке, разделяя это, но почему AWK не извлекает правильный бит и сохраняет это?
Спасибо