.drill

.drill [through] 
       <"var1,var2,var3"|$EnvVar|-r[p] Register> 
       [gr[ouped by] "{}"] 
       [sep[arated by] ","] 
       [exec] "Command $1 $2"

Mit dem Befehl .drill können Sie einen Befehl in einer Schleife ausführen, wobei der Befehl für jeden Wert einer Reihe von Werten ausgeführt wird. Die Werte können entweder in der Befehlszeile angegeben oder aus einer Umgebungsvariablen oder einem Register übernommen werden. Bei der Ausführung eines .drill-Befehls erstellt das System mithilfe der .drill-Syntax eine Reihe von Befehlszeilen, die zur Ausführung an den Agenten gesendet werden.

Mit dem Befehl .drill "A,B,C,D" "echo value $1" werden beispielsweise die folgenden Befehle erstellt:
echo value A 
echo value B 
echo value C 
echo value D

Gruppierung

Sie können die Werte in Gruppen zusammenfassen und über die $n-Syntax auf mehrere Werte in jeder Gruppe verweisen. $1 verweist auf den ersten Wert in der Gruppe; $2 auf den zweiten Wert in der Gruppe usw. Mit .drill through "(A,B,C,D,E),(B,C,D,E,F),(C,D,E,F,G)" grouped by "()" separated by "," exec "echo 1[$1] 2[$2] 3[$3] 4[$4] 5[$5]" werden beispielsweise die folgenden Befehle erstellt:
echo 1[A] 2[B] 3[C] 4[D] 5[E] 
echo 1[B] 2[C] 3[D] 4[E] 5[F] 
echo 1[C] 2[D] 3[E] 4[F] 5[G]
Anmerkung: Es gibt kein Zeichen für eine Standardgruppierung. Es gibt jedoch ein Standardtrennzeichen, das Komma. Wird grouped by nicht angegeben, durchsucht das System die durch Kommas getrennten Werte. Dabei wird jede Wertefolge als ein einzelner Wert interpretiert. Der Befehl .drill "(A,B),(C,D)" "echo $1 $2" beispielsweise wird in die folgenden Befehle aufgelöst:
echo (A 2 
echo B) 2
echo (C 2
echo D) 2

Datenquellen

Es gibt mehrere Möglichkeiten, wie der Befehl .drill die Daten erhält, die er in einer Schleife abarbeitet. Der erste Parameter für den Befehl ist die Datenquelle. Durch Angabe des optionalen Befehlsworts "through" können Sie die Datenquelle angeben.
  • Sie können die Daten explizit in der Befehlszeile angeben, wie beispielsweise in dem folgenden Befehl, der die Werte "eins", "zwei" und "drei" abarbeitet:
    .drill through "one,two,three" exec "echo $1"
  • Sie können eine Umgebungsvariable als Datenquelle angeben. Bei dem folgenden Befehl wird davon ausgegangen, dass es sich bei der Umgebungsvariablen FILENAMES um eine Liste von Dateinamen handelt, die durch Kommas getrennt sind. Mit einem DOS-Befehl werden alle Dateien in dieser Liste gelöscht:
    .drill through $FILENAMES exec "del $1"
  • Sie können ein Register oder Projektregister als Datenquelle angeben. Wenn RegisterA eine Liste mit Dateinamen enthält, die durch Kommas getrennt sind, wird mit dem folgenden Befehl an ein Linux-System der Inhalt der einzelnen Dateien ausgegeben:
    .drill -r RegisterA exec "cat $1"
    Dasselbe geschieht auch bei Ausführung des folgenden Befehls, nur dass hier als Datenquelle ein Projektregister verwendet wird:
    .drill -rp ProjectRegisterA exec "cat $1" 

Feedback