Categories: Tecnologia

Como pausar um script Bash com o comando Linux Sleep

Fatmawati Achmad Zaenuri / Shutterstock.com

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 sleepum espaço, um número e pressione Enter.

dormir 5

O cursor desaparecerá por cinco segundos e depois retornará. O que aconteceu? Usar sleepna 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 sleepem dias, horas e minutos, bem como em segundos. Para fazer isso, inclua um sufixo de d, h, m,ou scom 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 ssufixo (para segundos) é opcional. Sem sufixo, sleeptratará qualquer duração como segundos. Suponha que você queira fazer uma sleeppausa de cinco minutos e vinte segundos. Um formato correto deste comando é:

dormir 5m 20

Se você esquecer de fornecer o msufixo na duração dos minutos, você instruirá  sleepa fazer uma pausa de cinco segundos e depois novamente por vinte segundos. Então, sleepfará 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 sleepeles 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 sleepfazer uma pausa de meia hora.

Todos os comandos a seguir (cada vez mais excêntricos) dizem sleeppara pausar por 10 segundos.

dormir 10
dormir 5 5s
Sono 1 1 1s 1 1 1s 1 2
dormir 0,16667m

Usando Sleep para pausar antes de um comando

O sleepcomando 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 sleeppara 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 sleepcomando 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 jqutilitá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 curle jq. Use apt-getpara 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.shscript e passe o books.txtarquivo 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.shscript está além do escopo deste artigo. O script foi escolhido puramente para ilustrar um uso válido do sleepcomando. 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 .

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

1 ano ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

1 ano ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

1 ano ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

1 ano ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

1 ano ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

1 ano ago