GNU/Linux >> Znalost Linux >  >> Linux

Opakovat příkaz Unix každých X sekund navždy?

Existuje vestavěný unixový příkaz repeat jehož první argument je počet opakování příkazu, kde příkaz (s libovolnými argumenty) je určen zbývajícími argumenty k repeat .

Například,

% repeat 100 echo "I will not automate this punishment."

bude echo daný řetězec 100krát a poté se zastaví.

Chtěl bych podobný příkaz – říkejme mu forever – to funguje podobně, až na to, že prvním argumentem je počet sekund pro pauzu mezi opakováními a opakuje se donekonečna. Například,

% forever 5 echo "This will get echoed every 5 seconds forever and ever."

Myslel jsem, že se zeptám, jestli něco takového existuje, než to napíšu. Vím, že je to jako dvouřádkový skript v Perlu nebo Pythonu, ale možná existuje standardnější způsob, jak to udělat. Pokud ne, klidně pošlete řešení ve svém oblíbeném skriptovacím jazyce.

PS:Možná by bylo lepší zobecnit repeat vzít jak počet opakování (s -1 znamená nekonečno), tak počet sekund spánku mezi opakováními.
Výše ​​uvedené příklady by pak vypadaly takto:

% repeat 100 0 echo "I will not automate this punishment."
% repeat -1 5 echo "This will get echoed every 5 seconds forever."

Přijatá odpověď:

Vyzkoušejte watch příkaz.

Usage: watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=<n>] 
             [--no-title] [--version] <command>`

Takže:

watch -n1  command

spustí příkaz každou sekundu (dobře, technicky, každou sekundu plus čas potřebný pro command spustit jako watch (alespoň procps a busybox implementace) pouze spí jednu sekundu mezi dvěma spuštěními command ), navždy.

Chcete předat příkaz exec místo sh -c , použijte -x možnost:

watch -n1 -x command

V systému macOS můžete získat watch z portů Mac:

port install watch

Nebo jej můžete získat z Homebrew:

brew install watch

Linux
  1. Zahodit Stdout Of A Command na T sekund?

  2. 10 Příklady příkazů Xargs v Linuxu / UNIXu

  3. UNIX / Linux :Příklady příkazů historie bash pro opakování posledních příkazů

  1. Jak spustit nebo opakovat příkaz Linuxu každých X sekund navždy

  2. UNIX / Linux:10 příkladů příkazů Netstat

  3. Problémy s příkazovým řádkem Netcat

  1. Sledujte:Opakujte Unixové příkazy nebo skripty Shell každých N sekund

  2. 5 UNIX / Linux Příklady příkazů Traceroute

  3. příklady příkazů tail v UNIX/Linux