O que saber
- Use o dormir comando mais um tempo; s=segundos, m=minutos, h=horas, ou d=dias (por exemplo, dormir 5s pausa o script por 5 segundos).
- Usar homem dorme para mais.
Este artigo explica como usar o comando de suspensão do Linux para pausar um script bash, entre outras coisas. Por si só, o comando sleep não é muito útil. No entanto, como parte de um script, pode ser usado de várias maneiras. Por exemplo, você pode usá-lo para pausar o script antes de tentar novamente um comando que falhou na primeira vez.
Um exemplo de uso do comando Sleep
Imagine que você tenha um script que processa arquivos que foram baixados de outro servidor. O script não deve iniciar o processo de cópia até que o download de todos os arquivos seja concluído. O processo de download é executado por um script separado que é executado antes do seu. O script que copia os arquivos pode conter um loop para testar se todos os arquivos foram baixados (ele faz isso verificando se 50 arquivos foram encontrados antes de iniciar o processo de cópia). Não há motivo para testar o script constantemente, pois isso usa o tempo do processador. Em vez disso, você pode pausar por alguns minutos entre cada teste antes de tentar novamente. O comando sleep é perfeito em tais circunstâncias.
Como Usar o Comando Dormir
Para usar o comando de suspensão do Linux, digite o seguinte na janela do terminal: sleep 5s
class = “ql-syntax”> O comando acima faz o terminal pausar por 5 segundos antes de retornar à linha de comando. O comando sleep requer a palavra-chave dormir, seguido pelo número que você deseja pausar e a unidade de medida. Você pode especificar o atraso em segundos, minutos, horas ou dias.
- s: Segundos
- m: Minutos
- h: Horas
- d: Dias
Quando se trata de pausar um script por dias, use um cron job para executar o script em intervalos regulares, ao invés de ter um script executado em segundo plano por dias. Um cron job é um comando ou script do Linux que você pode programar para ser executado em uma hora ou dia definido. Eles são úteis para repetir tarefas por um longo período de tempo. O número do intervalo do comando de suspensão não precisa ser um número inteiro. Você também pode usar números de ponto flutuante.
Por exemplo, a seguinte sintaxe inclui uma fração de segundo: sleep 3,5s
class = “ql-syntax”>
Um exemplo de uso do comando Sleep
O script a seguir mostra como usar o comando sleep para fazer uma contagem regressiva baseada em terminal: #! / Bin / bash
x = 10
enquanto [ $x -gt 0 ]
Faz
dormir 1s
Claro
echo “$ x segundos até decolar”
x = $ (($ x – 1))
feito
class = “ql-syntax”> Veja como este script funciona:
- O script define a variável x como 10.
- O loop while continua a iterar enquanto o valor de x é maior que zero.
- O comando sleep pausa o script por 1 segundo a cada vez em torno do loop.
- O restante do script limpa a tela a cada iteração, exibe a mensagem, “x segundos até decolar” e subtrai 1 do valor de x.
Sem o comando sleep, o script aumentaria o zoom e as mensagens seriam exibidas muito rapidamente.
Como usar interruptores de comando de suspensão
O comando sleep tem apenas alguns interruptores. O –ajuda switch mostra o arquivo de ajuda para o comando sleep. Você pode conseguir a mesma coisa usando o comando man da seguinte maneira: man sleep
type = “code”> O –versão switch mostra a versão do comando sleep instalado no sistema. As informações retornadas pelo switch –version são as seguintes:
- Número da versão
- Detalhes de direitos autorais
- Licença
- Autores
Pausar comandos do terminal com repouso
Outro bom uso para o comando sleep é pausar os comandos digitados na janela do terminal. Se desejar, você pode digitar dois comandos seguidos, esperando que o primeiro termine antes de digitar o segundo. No entanto, uma abordagem mais rápida é digitar os dois comandos em uma linha, com um comando sleep entre cada comando: $ cd / mydirectory / && sleep 3 && ls
type = “code”> Como funciona este comando:
- O cd / meudiretório / comando muda o diretório.
- O dormir 3 O comando espera três segundos para que o comando cd termine.
- O ls comando executa e exibe o conteúdo do diretório.
Para um exemplo simples como este, o comando sleep economiza apenas um pouco de tempo. No entanto, se você tiver uma longa lista de comandos, a capacidade de digitar os comandos em uma linha economiza tempo.