LINUX.ORG.RU

модифицировать скрипт


0

0

#!/bin/bash

TIMESTAMP=`date +%s`

ambient=`/mnt/data/pogoda.pl | grep AMBIENT: | awk '{ print $2}'`
sky=`/mnt/data/pogoda.pl | grep SKY: | awk '{ print $2}'`
sensors=`/mnt/data/pogoda.pl | grep SENSORS: | awk '{ print $2}'`
cond=`/mnt/data/pogoda.pl | grep COND: | awk '{ print $2}'`

WEATHER=$ambient:$sky:$sensors:$cond
rrdtool update /var/db/rrdtool/weather.rrd $TIMESTAMP:$WEATHER


в вышеприведенном скрипте прога pogoda.pl запускается 4 раза. 
Можно ли какннить сделать так, чтобы она вызывалась всего лишь один раз?

thx!!!

p.s. просьба не пинать, shell не знаю =(


☆☆

гы-гы-гы, оказалось что 100 килобайт мануалов читать не надо:

#!/bin/bash

TIMESTAMP=`date +%s`

eee=`/mnt/data/robot/pogoda.pl`
ambient=`echo "$eee" | grep AMBIENT: | awk '{ print $2}'`
sky=`echo "$eee" | grep SKY: | awk '{ print $2}'`
sensors=`echo "$eee" | grep SENSORS: | awk '{ print $2}'`
cond=`echo "$eee" | grep COND: | awk '{ print $2}'`

WEATHER=$ambient:$sky:$sensors:$cond
rrdtool update /var/db/rrdtool/weather.rrd $TIMESTAMP:$WEATHER

вопрос походу закрыт

vilfred ☆☆
() автор топика
Ответ на: комментарий от vilfred

аккуратнее с переменными..

пример:

$ VAR="-n  a"
$ echo $VAR | awk '{ print $1 }'
a

(хотя должно быть -n)

нужно использовать echo "$VAR"

лучше использовать printf(1)

а еще лучше использовать временный файл

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

у тебя правильно в кавычках, а у asgard неправильно без кавычек

там и количество пробелов будет изменяться

dilmah ★★★★★
()

если я правильно понял задачу...

WEATHER=`/mnt/data/pogoda.pl|awk '{ if ($0 ~ /(AMBIENT|SKY|SENSORS|COND)/) { printf("%d:",$2); } }'`

polachok
()
Ответ на: комментарий от polachok

Ага, тоже самое хотел написать:

WEATHER=`/mnt/data/pogoda.pl | awk '/AMBIENT/ {am=$2}; /SKY/ {sk=$2}; /SENSORS/ {se=$2}; /COND/ {co=$2}; END {print am":"sk":"se":"co}`

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.