awk und shell: Variablenspielerei

Das hier gezeigte kleine Shell-Skript, soll die Interaktion zwischen awk und der Shell bzw. dem -Skript demonstrieren. D.h., es wird eine Shell-Variable an den Aufruf von awk übergeben, dort bearbeitet und der neue Wert der Shell-Variablen wieder zugewiesen:

#!/bin/bash

z=0
for i in `seq 20`
do
z=`tclsh8.5 dmtest.tcl | awk -v z=${z} '{ z+=$2; print z }'`
done
echo "duration = ${z} microsec."

Kurze Erklärung:
Es wird 20mal das Tcl-Skript 'dmtest.tcl' aufgerufen. Dieses Skript macht irgendwas und gibt dann z.B. den String "Zeit: 23811 Microsekunden" zurück. Den Zeitwert finden wir dann im awk-Skript in der Variablen $2 und addieren ihn zu der Shell-Variablen z. Danach geben wir den neuen Wert an die Shell-Skript-Varible zurück und verwenden diesen dann beim nächsten Schleifendurchlauf usw.

Ich weiß, die Zeitmessung hätte ich auch gleich vollständig im Tcl-Skript erledigen können, etwa derart:
puts "duration = [time { 
for {set i 0} {$i < 20} {incr i 1} {
...
}
}]"
 
 Artikel als Bookmark:
Beitrag wurde bisher 894 mal geöffnet
RA Zabel/Stolze
  • 96 Artikel  (zeigen)
  • 66544 Klicks
  • 56 Kommentare
  • 9 Artikel (2010)  (zeigen)
  • 1855 Klicks (2010)
  • 0 Kommentare (2010)
Freunde / Linkparade (4)