Skip to content

Jak pomocí příkazu Linux Sleep pozastavit skript BASH

5 de Říjen de 2021
use linux sleep command 3572060 21f86713ee724a4898c755e6359f9ca7

Co vědět

  • Použijte spát příkaz plus čas; s=sekundy, m=minut, h=hodiny, nebo d=dny (například, spát 5 s pozastaví skript na 5 sekund).
  • Použití muž spát více.

Tento článek vysvětluje, jak pomocí příkazu spánku Linux mimo jiné pozastavit skript bash. Samotný příkaz spánku není příliš užitečný. Jako součást skriptu ji však lze použít mnoha způsoby. Můžete jej například použít k pozastavení skriptu před opakováním příkazu, který selhal poprvé.

Příklad použití příkazu Spánek

Představte si, že máte skript, který zpracovává soubory stažené z jiného serveru. Skript by neměl zahájit proces kopírování, dokud se nedokončí stahování všech souborů. Proces stahování provádí samostatný skript, který běží před vaším. Skript, který zkopíruje soubory, může obsahovat smyčku k testování, zda se stáhly všechny soubory (provede to kontrolou, zda je před spuštěním procesu kopírování nalezeno 50 souborů). Nemá smysl neustále testovat skript, protože používá čas procesoru. Místo toho můžete mezi jednotlivými testy na několik minut pauzu, než to zkusíte znovu. Spánek je za takových okolností perfektní.

Jak používat příkaz Spánek

Chcete -li použít příkaz spánku systému Linux, zadejte do okna terminálu následující: spánek 5 s

class = „ql-syntax“> Výše ​​uvedený příkaz způsobí, že se terminál na 5 sekund zastaví, než se vrátí na příkazový řádek. Příkaz spánku vyžaduje klíčové slovo spát, následuje číslo, které chcete pozastavit, a měrná jednotka. Můžete zadat zpoždění v sekundách, minutách, hodinách nebo dnech.

  • s: Sekundy
  • m: Minut
  • h: Hodiny
  • d: Dny

Pokud jde o pozastavení skriptu na několik dní, použijte úlohu cron ke spouštění skriptu v pravidelných intervalech, na rozdíl od skriptu běžícího několik dní na pozadí. Úloha cron je příkaz nebo skript systému Linux, který lze naplánovat tak, aby se spouštěl v nastavený čas nebo den. Jsou užitečné pro opakování úkolů po dlouhou dobu. Číslo pro interval příkazu spánku nemusí být celé číslo. Můžete také použít čísla s plovoucí desetinnou čárkou.

Příkaz spánku Linux

Následující syntaxe například obsahuje zlomek sekundy: spánek 3,5 s

class = „ql-syntax“>

Příklad použití příkazu Spánek

Následující skript ukazuje, jak pomocí příkazu sleep vytvořit odpočítávací hodiny založené na terminálu: #!/Bin/bash
x = 10
zatímco [ $x -gt 0 ]
dělat
spát 1 s
Průhledná
opakujte „$ x sekund do odpálení“
x = $ (($ x – 1))
Hotovo

class = „ql-syntax“> Tento skript funguje takto:

  • Skript nastaví proměnnou x na 10.
  • Smyčka while pokračuje v iteraci, zatímco hodnota x je větší než nula.
  • Příkaz sleep pozastaví skript na 1 sekundu pokaždé kolem smyčky.
  • Zbytek skriptu vymaže obrazovku při každé iteraci, zobrazí zprávu „x sekund do odstřelu“ a od hodnoty x odečte 1.

Spánek Linuxu ve skriptu

Bez příkazu spánku by se skript přiblížil a zprávy by se zobrazovaly příliš rychle.

Jak používat přepínače režimu spánku

Příkaz spánku má pouze několik přepínačů. The –Pomoc přepínač zobrazuje soubor nápovědy pro příkaz spánku. To samé můžete dosáhnout pomocí příkazu man následovně: muž spát

typ = „kód“> –verze přepínač zobrazuje verzi příkazu spánku, který je nainstalován v systému. Informace vrácené přepínačem –version jsou následující:

  • Číslo verze
  • Podrobnosti o autorských právech
  • Licence
  • Autoři

Pozastavte příkazy terminálu v režimu spánku

Dalším dobrým využitím příkazu sleep je pozastavit příkazy zadané v okně terminálu. Pokud chcete, můžete zadat dva příkazy za sebou a před zadáním druhého počkat na dokončení prvního. Rychlejším přístupem je však zadat dva příkazy na jeden řádek s příkazem spánku mezi každým příkazem: $ cd / mydirectory / && sleep 3 && ls

type = „code“> Jak tento příkaz funguje:

  • The cd /mydirectory / příkaz změní adresář.
  • The spát 3 příkaz čeká tři sekundy na dokončení příkazu cd.
  • The ls příkaz provede a zobrazí obsah adresáře.

Pro jednoduchý příklad, jako je tento, příkaz spánku ušetří jen trochu času. Pokud však máte dlouhý seznam příkazů, možnost psát příkazy na jeden řádek šetří čas.