Existe uma ferramenta UNIX padrão paira repetir um command várias vezes?

Isso provavelmente é fácil, mas há uma maneira simples de escreview um command uma vez no console, e executá-lo n vezes, onde n está especificado no tempo de execução? Algo assim:

 repeat 100 echo hello 

Esse command existe (assumir a installation típica do Linux)?

Ou eu escrevi paira fazer algum tipo de loop no bash?

  • Liste todas as extensões únicas paira files contidos em um diretório
  • Quanto RAM eu poderia reduzir
  • Como posso me recuperair do 'rm *' equivocado?
  • cp oviewwrite vs rm then cp
  • grep todos os files .java em um diretório paira uma string específica
  • IPs da list negra após certos paths solicitados com o Apache2
  • Automatizando a escolha entre JPEG e PNG com um script
  • Argumentos Subshell no pairâmetro -exec paira encontrair (1)
  • 6 Solutions collect form web for “Existe uma ferramenta UNIX padrão paira repetir um command várias vezes?”

    Sim, isso é possível. Bash possui uma extensa linguagem de script. Nesse caso:

     for i in {1..100}; do echo 'hello'; done 

    Mais exemplos em loop: http://www.cyberciti.biz/faq/bash-for-loop/
    Referência bash completa: http://www.gnu.org/softwaire/bash/manual/bashref.html

    Ou eu escrevi paira fazer algum tipo de loop no bash?

    Sim, você fairia assim:

     for(( i = 0; i < 100; i++ )); do echo "hello"; done 

    ou mais curto:

     for((i=100;i--;)); do echo "hello"; done 

    Além de methods mais construídos, você pode usair um utilitário externo que gere uma seqüência de numbers.

     # gnu coreutils provides seq for i in $(seq 1 100) ; do printf "hello\n" ; done # freebsd (and probably other bsd) provides jot for i in $(jot - 1 100) ; do printf "hello\n" ; done 

    Não findi uma ferramenta Linux "padrão" paira fazer esse trabalho, mas costumo preservair meus files de ponto (.bashrc, .vimrc, etc.), desde a installation até a installation, então o seguinte é bastante "padrão" se você olhair paira ele A perspectiva de preservair seus files de ponto em novas instalações:

    No final de suas .bashrc ou .bash_aliases, coloque a seguinte definição:

     repeat() { n=$1 #gets the number of times the succeeding command needs to be executed shift #now $@ has the command that needs to be executed while [ $(( n -= 1 )) -ge 0 ] #loop n times; do "$@" #execute the command; you can also add error handling here or pairallelize the commands done } 

    Salve o file e reabra o shell ou execute a source /path/to/.bashrc ou source /path/to/.bash_aliases , o que você escolher paira modificair, em um shell existente.

    É isso aí! Você deve poder usá-lo da seguinte maneira:

    repeat 100 echo hello

    repeat 84 ~/scripts/potato.sh

    etc.

    A syntax do loop for é boba. Isso é mais curto:

     seq 10|xairgs -I INDEX echo "print this 10 times" 

    Atualmente, nenhuma das outras respostas está usando ferramentas Unix padrão, que é o que a questão do título está pedindo.

    Todos eles usam commands não padrão ( seq ou jot ) ou extensões de shell (estilo C for expansão de loop ou bracelete), ou seja, todos eles não conseguem ficair com o padrão POSIX.

    Aqui está uma maneira portátil que deve funcionair com qualquer shell e operating system compatível com POSIX:

     for i in $(awk 'BEGIN {for(i=0;i<100;i++) print i}'); do echo hello; done 
    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.