[vz-users] Auslesen via bash mangels vzlogger auf raspi

Thorben Thuermer r00t at constancy.org
Mon Oct 28 15:09:28 CET 2013


August Kabel, Mon Oct 28 10:09:25 CET 2013
> August Kabel <kabel.august at ...> writes:

ich hatte iirc _versucht_, deine erste mail zu beantworten,
aber hatte dann aufgegeben, mich mit dem total kaputtformatierten
html-post herumzuaergern.

> Irgendwie scheint mein Problem hier zu liegen.
>  ( sleep 1 ; echo -e "\x2f\x3f\x21\x0d\x0a" > /dev/ttyUSB0 ) &
>  
>  while read -t390 line
> do
>    [[ "$line" =~ "1.7.0" ]] && Z1L=${line:6:8}
>    [[ "$line" =~ "1.8.0" ]] && Z1=${line:6:8}
>   [[ "$line" =~ "2.8.0" ]] && Z1E=${line:6:8}
> done < /dev/ttyUSB0
>
> Was bedeutet genau die Tilde? Sowas wie Bestandteil einer Zeichenkette? Und
> wofür steht die doppelte eckige Klammer? 

$ help [[
[[ ... ]]: [[ expression ]]
    Execute conditional command.
    
    Returns a status of 0 or 1 depending on the evaluation of the conditional
    expression EXPRESSION.  Expressions are composed of the same primaries used
    by the `test' builtin, and may be combined using the following operators:
    [...]    
    When the `=~' operator is used, the string to the right of the operator
    is matched as a regular expression.

effektiv substring, da eh keine metazeichen verwendet werden.
(bzw der punkt nicht als solches gemeint ist!)
korrekter waehre wohl ein richtiger substring-match,
mittels [[ $line = *1.7.0* ]]
(die anfuehrungszeichen sind innerhalb von [[ nicht noetig,
 sonst aber meist sinnvoll)

> Und weswegen befindet sich das $ vor der { und nicht direkt vor der
> Variablen line?   

weil das bash ist und nicht php:

$ man bash
   Parameter Expansion
       The `$' character introduces parameter expansion, command  substitu-
       tion,  or  arithmetic expansion.
[...]
       ${parameter:offset:length}
              Substring Expansion.  Expands to up to length  characters  of
              parameter  starting at the character specified by offset.

> Ich weiß, grundlegende Fragen, aber irgendwie muss ich das Ding ja zum
> Laufen kriegen.

ist halt in bash programmiert...
aber ein bisschen scheinst du ja programmieren zu koennen.

> Gruß

- T.


More information about the volkszaehler-users mailing list