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