Hoe om te Pauzeren een Bash-Script Met de Linux Sleep Commando

0
404
Fatmawati Achmad Zaenuri/Shutterstock.com

Het sleep commando zorgt ervoor dat je Linux computer niets te doen. Contra-intuïtief misschien, maar een periode van inactiviteit is soms net wat nodig is. In dit artikel ziet u hoe u dit Bash-shell-opdracht effectief.

Het gebruik van de slaapstand is eenvoudig. Op de commando-regel type slapen, een ruimte, een nummer en druk vervolgens op Enter.

slaap 5

De cursor zal verdwijnen vijf seconden en dan weer terug. Wat is er gebeurd? Het gebruik van slaap op de commando-regel instrueert Bash op te schorten, verwerking, voor de duur die u verstrekt. In ons voorbeeld was dit vijf seconden.

We kunnen pas duur om te slapen in dagen, uren en minuten, evenals in seconden. Om dit te doen zijn onder andere een achtervoegsel van een van beide d, h, m, s of met de duur. Om de oorzaak van de slaap te onderbreken voor een dag, vier uur, zeven minuten en vijf seconden, een opdracht als deze:

slaap 1d 4u 7m 5s

De s-suffix (seconden) is optioneel. Zonder achtervoegsel, slaap zal de behandeling de duur in seconden. Stel dat je wilde hebben van slaap pauze van vijf minuten en twintig seconden. Een juiste indeling van deze opdracht is:

slaap 5m 20

Als u vergeet om de m-suffix op de minuten duurt, zal u instrueren slaap te onderbreken voor vijf seconden uit en vervolgens weer twintig seconden. De slaap wordt onderbroken voor 25 seconden.

Veel commandos vereisen dat je de parameters vormen in een bepaalde volgorde, maar de slaap is erg vergevingsgezind. U kunt ze in elke volgorde zijn en slapen zinvol is. U kunt ook een drijvende komma getal als parameter. Bijvoorbeeld 0,5 uur is een goede manier om aan te geven dat u wilt slaap te onderbreken voor een half uur.

Alle van de volgende (en in toenemende mate decentraal) commando ‘ s vertellen slaap te onderbreken voor 10 seconden.

slapen 10
slaap 5 5s
Slaap 1 1 1 1 1 1 1 2
slaap 0.16667 m

Het gebruik van Slaap Onderbreken Voordat een Opdracht

Het sleep commando kan worden gebruikt om een pauze voor de uitvoering van een opdracht. Deze opdracht zou onderbreken voor 15 seconden en geeft een pieptoon.

slapen 15 && echo -en “07′

Het gebruik van Slaap te Pauzeren Tussen de Twee Commando ‘ s

U kunt gebruik maken van de slaap geven een pauze tussen twee opdrachten. Dit commando geeft een lijst met bestanden in je Documenten map, pauze van vijf seconden en dan is het wijzigen van de huidige working directory in je home directory:

ls -R ~/Documenten && slapen 5 && cd ~

Het gebruik van Slaap Onderbreken van de Uitvoering van een Script

U kunt gebruik maken van het sleep commando in op de shell scripts te pauzeren de uitvoering van het script voor een precieze hoeveelheid van de tijd. Typisch, zou u dit doen om een proces voldoende tijd te voltooien voordat het script blijft de verwerking ervan. U kunt het ook gebruiken om de snelheid van het aanvragen van een script maakt naar een andere bron.

Om aan te tonen precies dat, hier is een script dat roept om een Google web service met krullen. Wanneer u een query van webservice met het ISBN-nummer van een boek, het reageert met een dump van een JSON-gegevens over dat boek. We kunnen parseren van die gegevens door het passeren van het door de jq hulpprogramma voor het ophalen van de titel van het boek. Dus dat het script niet stress de web service het is geschikt voor één seconde van het web aanvragen.

Maak een bestand aan met de volgende tekst en sla deze op als check_book.sh.

#!/bin/bash

voor het boek `cat $1`
doen
echo $book”:”
curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$reserveer | jq ‘.items | .[] | .volumeInfo.titel’
echo “”
slaap 1
gedaan

echo “Alles gedaan.”

Typ de volgende opdracht om de uitvoering van de machtigingen en maak het script uitvoerbaar.

chmod +x check_book.sh

Het script moet de krul en jq hulpprogramma ‘ s. Apt-get gebruiken voor het installeren van deze pakketten op uw systeem als u gebruikmaakt van Ubuntu of een andere Debian-gebaseerde distributie. Op andere Linux distributies, gebruik maken van uw Linux-distributie is de package beheer tool voor in de plaats.

sudo apt-get install krullen
sudo apt-get install jq

Maak een tekstbestand dat de volgende nummers en opslaan als books.txt.

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

Het uitvoeren van de check_book.sh script en pas in de books.txt bestand als parameter.

./check_book.sh books.txt

De verzoeken worden gedaan om de Google web service in een seconde. De titel van het boek zal binnenkort verschijnen na elke ISBN-nummer is opgevraagd.

Dat is alles wat er is om te slapen. De innerlijke werking van de check_book.sh script buiten de scope van dit artikel. Het script werd gekozen puur ter illustratie van een geldig gebruik maken van het sleep commando. Als u wilt om meer te lezen over de twee belangrijkste componenten van het script, verwijzen naar het krul project pagina en de jq on-line handleiding.