Existe uma maneira de fazer o loop de um comando de console no Linux?

0

O problema:

Estou tentando isso (como root) no console do Fedora 19:

yum install httpd

Tudo isso retorna:

loaded plugins: langpacks, refresh-packagekits Error: Cannot retrieve metalink for repository: fedora/19/x86_64. Please verify its path and try again.

Estou com esse erro raramente, mas quando obtenho, recebo por um dia.

O que eu tentei:

yum update retorna o mesmo erro.

Isso já dura um tempo, basicamente um desdobramento da minha pergunta anterior aqui

Se eu esperar o tempo suficiente, o comando do console irá eventualmente funcionar. Mas existe uma maneira de executar o comando até que seja bem sucedido?

    
por zack_falcon 08.01.2014 / 07:13

1 resposta

1

Algo como

 while true; do
    yum install httpd && break
    sleep 10
 done

deve funcionar. (A quantidade de sono é em segundos).

Você pode digitá-lo em uma única linha adicionando ; da seguinte forma:

while true; do yum install httpd && break; sleep 10; done

ADICIONAR :

Como Politowski sugere no comentário, você pode tentar também:

 while ! yum install httpd; do sleep 10; done

que pode parecer mais bonito / mais curto / mais claro / mais fácil de lembrar / entender para alguém. (Acha que há pelo menos um shell que não pode rodar, mas não é comum em sistemas "Linux", então quase certamente você não precisa se preocupar com isso).

    
por 08.01.2014 / 07:34

Tags