ForumBash: Rechenergebnis nicht numerisch zu sein – Umwandeln???
Peaky – Freitag, 14. Oktober 2022 15:35 Uhr

Ich versuche, eine Textdatei mit Dateinamen einzulesen und jede Zeile mit mindestens einem Slash (/) weiterverzuarbeiten. Die Slashzahl, welches mir die Verkettung von echo, grep und wc in Zeile 3 so schön als Ziffer ausgedruckt wird, läßt sich aber nicht numerisch in der if-Bedingung in Zeile 4 vergleichen. Entweder bekomme ich \”Ganzzahl erwartet\” oder \”Syntaxfehler: Auslösendes Element ist \”echo-grep-wc-Teil. Hab schon viel probiert: runde statt eckige Klammern, einfache statt doppele Klammern, mehr Leerzeichen, weniger Leerzeichen, Umstellung auf <>\”0\”, inzwischen lasse ich mir jedes Ergebnis sogar am Monitor anzeigen. Was mache ich falsch? Anbei der Codeschnipsel:

1 while read line; do

2 echo ${line}

3 echo ${line} | grep -o / | wc -l

4 if [[ \’${line} | grep -o / | wc -l\’ -ge 1 ]] ; then

5 echo Ausführung von weiteren Befehlen mit $line 5 #echo Ausführung von rmdir mit $line 5 # … –

6 fi

7 done < Anker.log falsch? while read line; do echo ${line} echo ${line} | grep -o / | wc -l if [[ \’${line} | grep -o / | wc -l\’ -ge 1 ]] ; then echo Ausführung von weiteren Befehlen mit $line #echo Ausführung von rmdir mit $line # … – fi done < Anker.log   iger e Ich bekomme eine verzweigt zu Protokolldatei,

1 Antwort
Schogol – Montag, 24. Oktober 2022 23:24 Uhr

die Zeile 4 macht nur folgendermassen Sinn:

if [ `echo ${line} | grep -o "/" | wc -l` -ge 1 ]; then

das Gesamte habe ich nicht so genau angeschaut