.drill [through]
<"var1,var2,var3"|$EnvVar|-r[p] Register>
[gr[ouped by] "{}"]
[sep[arated by] ","]
[exec] "Command $1 $2"
El mandato .drill le permite aplicar un mandato en bucle, ejecutando el mandato una vez por cada miembro de una serie de valores. Puede especificar los valores en la línea de mandato, o extraerlos de una variable de entorno o registro. Cuando el sistema ejecuta un mandato .drill, el sistema utiliza la sintaxis de .drill para construir una serie de líneas de mandato
y enviarlas al agente para su ejecución.
Por ejemplo, el mandato
.drill "A,B,C,D" "echo value $1"
crea los siguientes mandatos:
echo value A
echo value B
echo value C
echo value D
Agrupación
Puede agrupar los valores y hacer referencia a varios valores en cada grupo utilizando la sintaxis $
n.
$1 se refiere al primer valor en el grupo $2 al segundo valor en el grupo y así sucesivamente. Por ejemplo,
.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]" crea los siguientes mandatos:
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]
Nota: No existe un carácter de agrupación predeterminado. Existe un carácter separador predeterminado, la coma. Si no especifica
grouped by (agrupado por), el sistema busca entre los valores proporcionados como si estuvieran separados por el carácter separador y considera cada una de estas series como un valor individual. Por ejemplo, el mandato
.drill "(A,B),(C,D)"
"echo $1 $2" se desglosa en los siguientes mandatos:
echo (A 2
echo B) 2
echo (C 2
echo D) 2
Origen de datos
Dispone de diversas opciones por las cuales el mandato .drill obtiene los datos que
estableció en bucle. El primer parámetro del mandato es el origen de datos. Puede incluir la palabra opcional de mandato "through" (a través) para indicar el origen de datos.
- Puede listar explícitamente los datos en la línea de mandato, como en el siguiente mandato,
que establece en bucle los valores uno, dos y tres:
.drill through "uno,dos,tres," exec "echo $1"
- Puede extraer los datos de una variable de entorno. El mandato siguiente supone que la variable de entorno
FILENAMES es una lista de archivos separados por coma y utiliza un mandato DOS para suprimir todos los archivos de la lista:
.drill through $FILENAMES exec "del $1"
- Puede extraer los datos de un registro o de un registro de proyecto. Si RegisterA
contiene una lista de nombres de archivo separados por una coma, entonces el siguiente mandato emitido a un sistema Linux imprime el contenido de cada archivo:
.drill -r RegisterA exec "cat $1"
mientras que el siguiente ejemplo hace los mismo pero utiliza un registro de proyecto:.drill -rp ProjectRegisterA exec "cat $1"