GNU/Linux >> Tutoriales Linux >  >> Linux

¿Ejecutar un programa con varios parámetros (bucle)?

Tengo un programa, prog , que toma un argumento entero cuando lo llamo desde la terminal, por ejemplo:

./prog 10

Me gustaría ejecutar prog con un rango de valores, p. 10, 20, 30, ... . ¿Hay alguna manera ordenada de hacerlo, además de usar:

./prog 10 ; ./prog 20 ; ./prog 30 ; ....

Respuesta aceptada:

Puede usar un bucle for simple con Bash, Zsh o Ksh93.
Lo siguiente solo funciona desde Bash versión 4 (2009), zsh 4.3.10 (2010) y ksh93r (2006) (aunque el {x..y} sintaxis originada en zsh (en 2.6-beta4 en 1995)).

#!/bin/bash
# since Bash v4
for i in {10..100..10}
do
     $path_of_prog/prog $i
done

El {$start..$end..$step} parte dice que $i es al principio igual a $start y $i irá a $end .
El $step es la cantidad con la que $i se incrementará en cada paso.
Entonces obtenemos los valores 10 20 30 ... 100 para $i .

También puedes escribirlo todo en una línea con

for i in {10..100..10}; do ./prog $i; done

Si tiene un Bash anterior y GNU seq está disponible, use las siguientes líneas

#!/bin/bash
#only for pre Bash v4
for i in $(seq 10 10 100)
do
   $path_of_prog/prog $i
done

o como una sola línea

for i in $(seq 10 10 100);do ./prog $i; done

(lo anterior asume que no has modificado el $IFS variables).


Linux
  1. Bash -c con parámetros posicionales?

  2. ¿Cómo crear un bucle for con un número variable de iteraciones?

  3. Parámetros especiales de Bash explicados con 4 scripts de Shell de ejemplo

  4. Cómo crear subprocesos en Linux (con un programa de ejemplo en C)

  5. comprobando si un binario compilado con -static

Administre máquinas virtuales KVM con el programa Virsh

Secuencias de comandos de Bash:ciclo while y till explicado con ejemplos

Bash Scripting – Para bucle explicado con ejemplos

Bash For Loops con ejemplos

Cómo verificar los parámetros del servidor VPS con el comando Linux

Bash Script for Loop explicado con ejemplos