Bienvenido a nuestro sitio web, en este sitio hallarás la solucíon que necesitas.
Solución:
Solución 1:
No creo que exista un comando o shell incorporado para esto, ya que es un subconjunto trivial de lo que el shell Bourne for
loop está diseñado y, por lo tanto, implementar un comando como este es bastante simple.
Según la sugerencia de JimB, use el Bash incorporado para generar secuencias:
for i in 1..10; do command; done
Para versiones muy antiguas de bash, puede usar el seq
dominio:
for i in `seq 10`; do command; done
Esto itera diez veces ejecutando command
cada vez – puede ser una tubería o una serie de comandos separados por ;
o &&
. Puedes usar el $i
variable para saber en qué iteración se encuentra.
Si considera que este guión es una secuencia de comandos y, por lo tanto, por alguna razón no especificada (pero quizás válida) indeseable, puede implementarlo como un comando, tal vez algo como esto en su .bashrc (no probado):
#function run
run()
number=$1
shift
for i in `seq $number`; do
[email protected]
done
Uso:
run 10 command
Ejemplo:
run 5 echo 'Hello World!'
Solución 2:
ps aux | grep someprocess
parece que desea ver los cambios de un programa durante un tiempo fijo. Eduardo dio una respuesta que responde exactamente a su pregunta, pero hay una alternativa: watch
:
watch 'ps aux | grep someprocess'
Tenga en cuenta que he puesto el comando entre comillas simples para evitar que el shell interprete el comando como “ejecutar reloj ps aux” y canalizar el resultado grep someprocess
. Otra forma de hacer el comando anterior sería:
watch ps aux | grep someprocess
Por defecto, watch
se actualiza cada dos segundos, eso se puede cambiar usando el -n
opción. Por ejemplo, si desea tener un intervalo de 1 segundo:
watch -n 1 'ps aux | grep someprocess'
Solución 3:
Solo por diversión
pgrep ssh ;!!;!!;!!;!!;!!;!!
Solución 4:
Prueba esto:
yes ls | head -n5 | bash
Esto requiere que el comando se ejecute en una subcapa, una pequeña penalización de rendimiento. YMMV. Básicamente, obtienes el comando “sí” para repetir el string “ls” N veces; mientras que “head -n5” terminó el ciclo en 5 repeticiones. La tubería final envía el comando al shell de su elección.
De paso csh
-como las conchas tienen un incorporado repeat
dominio. ¡Podrías usar eso para ejecutar tu comando en un sub-shell de bash!
Solución 5:
similar a las respuestas anteriores, pero no requiere el bucle for:
seq 10 | xargs -I -- echo "hello"
tubería de salida de seq a xargs sin argumentos ni opciones
Si tienes algún dificultad y capacidad de mejorar nuestro noticia puedes añadir un exégesis y con deseo lo estudiaremos.