O comando sleep faz com que seu computador Linux não faça nada. Pode ser contra-intuitivo, mas às vezes é necessário um período de inatividade. Este artigo mostra como usar esse comando shell Bash de maneira eficaz.
Usar sleep
é fácil. Na linha de comando, digite sleep
um espaço, um número e pressione Enter.
dormir 5
O cursor desaparecerá por cinco segundos e depois retornará. O que aconteceu? Usar sleep
na linha de comando instrui o Bash a suspender o processamento pela duração fornecida. Em nosso exemplo, foram cinco segundos.
Podemos passar as durações sleep
em dias, horas e minutos, bem como em segundos. Para fazer isso, inclua um sufixo de d, h, m,
ou s
com a duração. Para fazer com que o sono pause por um dia, quatro horas, sete minutos e cinco segundos, use um comando como este:
dormir 1d 4h 7m 5s
O s
sufixo (para segundos) é opcional. Sem sufixo, sleep
tratará qualquer duração como segundos. Suponha que você queira fazer uma sleep
pausa de cinco minutos e vinte segundos. Um formato correto deste comando é:
dormir 5m 20
Se você esquecer de fornecer o m
sufixo na duração dos minutos, você instruirá sleep
a fazer uma pausa de cinco segundos e depois novamente por vinte segundos. Então, sleep
fará uma pausa de 25 segundos.
Muitos comandos exigem que você forneça parâmetros em uma ordem específica, mas sleep
é muito tolerante. Você pode fornecê-los em qualquer ordem e sleep
eles farão sentido. Você também pode fornecer um número de ponto flutuante como parâmetro. Por exemplo, 0,5h é uma forma válida de indicar que você deseja sleep
fazer uma pausa de meia hora.
Todos os comandos a seguir (cada vez mais excêntricos) dizem sleep
para pausar por 10 segundos.
dormir 10
dormir 5 5s
Sono 1 1 1s 1 1 1s 1 2
dormir 0,16667m
Índice
Usando Sleep para pausar antes de um comando
O sleep
comando pode ser usado para dar uma pausa antes da execução de um comando. Este comando faria uma pausa de 15 segundos e, em seguida, emitiria um bipe.
dormir 15 && echo -en '\ 007'
Usando Sleep para Pausar Entre Dois Comandos
Você pode usar sleep
para dar uma pausa entre dois comandos. Este comando listaria os arquivos em seu diretório de documentos, pausaria por cinco segundos e, em seguida, mudaria o diretório de trabalho atual para seu diretório inicial:
ls -R ~ / Documents && sleep 5 && cd ~
Usando Sleep para pausar a execução de um script
Você pode usar o sleep
comando em scripts de shell para pausar a execução do script por um período de tempo preciso. Normalmente, você faria isso para permitir que algum processo tivesse tempo suficiente para ser concluído antes que o script continuasse o processamento. Você também pode usá-lo para limitar a taxa de solicitações que um script faz a outro recurso.
Para demonstrar exatamente isso, aqui está um script que chama um serviço da web do Google usando curl
. Quando você consulta o serviço da web com o número ISBN de um livro, ele responde com um despejo de dados JSON sobre esse livro. Podemos analisar esses dados passando-os pelo jq
utilitário para recuperar o título do livro. Para que o script não sobrecarregue o serviço da web, ele dorme por um segundo entre as solicitações da web.
Crie um arquivo contendo o seguinte texto e salve-o como check_book.sh
.
#! / bin / bash para livro em `cat $ 1` Faz echo $ book ":" curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq '.items | . [] | .volumeInfo.title ' echo "" dormir 1 feito echo "Tudo feito."
Digite o seguinte comando para definir as permissões de execução e tornar o script executável.
chmod + x check_book.sh
O script requer os utilitários curl
e jq
. Use apt-get
para instalar esses pacotes em seu sistema se estiver usando o Ubuntu ou outra distribuição baseada em Debian. Em outras distribuições Linux, use a ferramenta de gerenciamento de pacotes da distribuição Linux.
sudo apt-get install curl
sudo apt-get install jq
Crie um arquivo de texto contendo os seguintes números e salve-o como books.txt
.
9781565921276 9781874416685 9781565921672 9780521431088 9781491941591
Execute o check_book.sh
script e passe o books.txt
arquivo como parâmetro.
./check_book.sh books.txt
As solicitações são feitas ao serviço da web do Google em intervalos de um segundo. O título do livro aparecerá logo após a consulta de cada número ISBN.
Isso é tudo que há para fazer sleep
. O funcionamento interno do check_book.sh
script está além do escopo deste artigo. O script foi escolhido puramente para ilustrar um uso válido do sleep
comando. Se você deseja ler mais sobre os dois componentes principais do script, consulte a curl
página do projeto e o jq
manual on-line .