Provavelmente, isso é fácil, mas existe uma maneira simples de escrever um comando uma vez no console e executá-lo n
vezes, onde n
é especificado em tempo de execução? Algo assim:
repeat 100 echo hello
Existe esse comando (assuma a instalação típica do Linux)?
Ou eu escreveria para fazer algum tipo de loop no bash?
command-line
unix
Jørn Schou-Rode
fonte
fonte
Sim, você gostaria:
ou, mais curto:
fonte
Além dos métodos mais integrados, você pode usar um utilitário externo que gera uma sequência de números.
fonte
Eu não encontrei uma ferramenta Linux "padrão" para fazer esse trabalho, mas normalmente preservo meus arquivos de ponto (.bashrc, .vimrc etc.) de instalação em instalação, portanto, o seguinte é bastante "padrão" se você o examinar em a perspectiva de preservar seus arquivos de ponto em novas instalações:
No final de suas .bashrc ou .bash_aliases, coloque a seguinte definição:
Salve o arquivo e reabra o shell ou execute
source /path/to/.bashrc
ousource /path/to/.bash_aliases
, o que você escolher para modificar, em um shell existente.É isso aí! Você deve poder usá-lo da seguinte maneira:
repeat 100 echo hello
repeat 84 ~/scripts/potato.sh
etc.
fonte
A sintaxe do loop for é boba. Isso é mais curto:
fonte
Atualmente, nenhuma das outras respostas está usando ferramentas padrão do Unix, que é o que a pergunta do título está pedindo.
Todos eles usam comandos não padrão (
seq
oujot
) ou extensões de shell (for
expansão de loop ou brace no estilo C ), ou seja, todos falham em seguir o padrão POSIX.Aqui está uma maneira portátil que deve funcionar com qualquer shell e sistema operacional compatível com POSIX:
fonte