[Eisfair_dev] Monitoring 0.4.0 Fehlermeldung

Juergen Edner juergen at eisfair.org
Do Mär 22 16:37:12 CET 2018


Hallo zusammen,

>> Zeile 221:
>>
>> value=`cut -d " " -f$name /proc/loadavg  | sed  s/\\.//-e s/^0// -e
>> s/^0// 2>/dev/null`
> 
> In der vorigen Version von monitoring.sh war die Zeile etwas kürzer:
> 
> value=`cut -d " " -f$name /proc/loadavg  | sed s/.\.// 2>/dev/null`
> 
> Um zu verstehen, was sed da macht, müsste ich erstmal Zeit haben, um
> mich da reinzulesen.

die Sache ist eigentlich ganz einfach:
Annahme: name='1'

cut -d " " -f$name /proc/loadavg    # nehme den Wert aus Spalte 1 einer
                                    # Liste deren Werte durch ein Leer-
                                    # zeichen getrennt werden
sed s/\\.//                         # suche nach allen Punkten im Wert
                                    # und ersetzte diese durch nichts
                                    # (Löschen)
sed s/^0//                          # Wenn der Wert mit einer Null
                                    # beginnt, lösche diese

Wie bei allen Dingen lässt sich dieser Ausdruck natürlich optimieren.
Zur Erklärung, erst einmal sollte man sed-Ausdrücke möglichst immer
Klammern, dann kann man mehrere Ausdrücke jeweils mittels ' -e ' hinter
einander weg schreiben. Wenn man alle führenden Nullen entfernen möchte,
was hier vermutlich gewünscht ist, verwendet man am besten folgende
Schreibweise (Alles in einer Zeile):

value=`cut -d " " -f$name /proc/loadavg |
       sed -e 's/\.//' -e 's/^0*//' 2>/dev/null`

Gruß Jürgen

-- 
Mail: juergen at eisfair.org


Mehr Informationen über die Mailingliste Eisfair_dev