Header Ads

Como pausar um script Bash com o comando de suspensão do Linux

O comando sleep faz o seu computador Linux não fazer nada. Contra-intuitivo, talvez, mas um período de inatividade é, por vezes, apenas o que é necessário. Este artigo mostra como usar esse comando de shell Bash efetivamente.

Usar o modo de suspensão é fácil. Na linha de comando digite sleep, um espaço, um número e pressione Enter.

 sleep 5 

O cursor desaparecerá por cinco segundos e depois retornará. O que aconteceu? Usar o sleep na linha de comando instrui o Bash a suspender o processamento pela duração que você forneceu. No nosso exemplo, foram cinco segundos.

Podemos passar durações para dormir em dias, horas e minutos, assim 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 sufixo s ( por segundos) é opcional. Sem sufixo, o sono tratará qualquer duração como segundos. Suponha que você quisesse fazer uma pausa para dormir por cinco minutos e vinte segundos. Um formato correto deste comando é:

 dormir 5m 20 

Se você esquecer de fornecer o sufixo m na duração dos minutos, você instruirá o sono a pausar por cinco segundos e depois novamente por vinte segundos. Então, o sono irá pausar por 25 segundos.

Muitos comandos exigem que você forneça parâmetros em uma ordem específica, mas o sono é muito indulgente. Você pode fornecê-los em qualquer ordem e o sono fará sentido para eles. Você também pode fornecer um número de ponto flutuante como um parâmetro. Por exemplo, 0,5h é uma maneira válida de indicar que você deseja que o sono pause por meia hora.

Todos os comandos a seguir (cada vez mais excêntricos) fazem com que o sono pause por 10 segundos.

 dormir 10 

 dormir 5 5s 
Sono 1 1 1s 1 1 1s 1 2

 dormir 0.16667m 

Usando o modo Sleep para pausar antes de um comando

O comando sleep pode ser usado para fazer uma pausa antes da execução de um comando. Este comando faria uma pausa de 15 segundos e depois daria um bip.

 sleep 15 & & echo -en '\ 007' 

Usando o modo Sleep para fazer uma pausa entre dois comandos

Você pode usar o modo sleep para fazer uma pausa entre dois comandos. Esse comando listaria os arquivos no diretório Documentos, pausaria por cinco segundos e depois mudaria o diretório de trabalho atual para o seu diretório pessoal:

 ls -R ~ / Documentos & dormir 5 & & cd ~ 

IMAGEM_2

Usando o modo Sleep para pausar a execução de um script

Você pode usar o comando sleep em shell scripts para pausar a execução do script para um quantidade de tempo. Normalmente, você faz isso para permitir que algum processo tenha tempo suficiente para ser concluído antes que o script continue seu processamento. Você também pode usá-lo para limitar as solicitações feitas por um script a outro recurso.

Para demonstrar exatamente isso, aqui está um script que chama um serviço da web do Google usando o 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 utilitário jq para recuperar o título do livro. Para que o script não enfatize o serviço da Web, ele dorme por um segundo entre solicitações da Web.

Crie um arquivo contendo o texto a seguir e salve-o como check_book.sh.

 #! / Bin / bash para livro em `cat $ 1` do echo $ book": "curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq '.items | [] | .volumeInfo.title 'echo "" sleep 1 feito echo "Tudo pronto." 

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 o apt-get para instalar esses pacotes em seu sistema, se você estiver usando o Ubuntu ou outra distribuição baseada no Debian. Em outras distribuições Linux, use a ferramenta de gerenciamento de pacotes da sua 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 script check_book.sh e passe no arquivo books.txt como um parâmetro.

 ./check_book.sh books.txt 

As solicitações são feitas para o Google serviço da web em intervalos de um segundo. O título do livro aparecerá logo após cada número de ISBN ser consultado.

Isso é tudo o que há para dormir. O funcionamento interno do script check_book.sh está além do escopo deste artigo. O roteiro foi escolhido apenas para ilustrar um uso válido do comando sleep. Se você deseja ler mais sobre os dois principais componentes do script, consulte a página curlproject e o manual jqon-line.

Via: How to Geek

Nenhum comentário