GNU/Linux >> Tutoriels Linux >  >> Linux

Répéter une commande Unix toutes les X secondes pour toujours ?

Il y a une commande Unix intégrée repeat dont le premier argument est le nombre de fois pour répéter une commande, où la commande (avec tous les arguments) est spécifiée par les arguments restants à repeat .

Par exemple,

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

fera écho à la chaîne donnée 100 fois puis s'arrêtera.

Je voudrais une commande similaire - appelons-la forever - qui fonctionne de la même manière sauf que le premier argument est le nombre de secondes de pause entre les répétitions, et il se répète indéfiniment. Par exemple,

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

J'ai pensé que je demanderais si une telle chose existe avant de l'écrire. Je sais que c'est comme un script Perl ou Python à 2 lignes, mais il existe peut-être une manière plus standard de le faire. Sinon, n'hésitez pas à publier une solution dans votre langage de script préféré.

PS :Peut-être qu'une meilleure façon de procéder serait de généraliser repeat pour prendre à la fois le nombre de répétitions (avec -1 signifiant l'infini) et le nombre de secondes de sommeil entre les répétitions.
Les exemples ci-dessus deviendraient alors :

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

Réponse acceptée :

Essayez la watch commande.

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

Ainsi :

watch -n1  command

exécutera la commande toutes les secondes (enfin, techniquement, toutes les secondes plus le temps qu'il faut pour la command à exécuter en tant que watch (au moins le procps et busybox implémentations) ne dort qu'une seconde entre deux exécutions de la command ), pour toujours.

Souhaitez-vous passer la commande à exec au lieu de sh -c , utilisez -x choix :

watch -n1 -x command

Sur macOS, vous pouvez obtenir watch depuis les ports Mac :

port install watch

Ou vous pouvez l'obtenir auprès de Homebrew :

brew install watch

Linux
  1. UNIX / Linux :10 exemples de commandes Netstat

  2. Regarder :répéter les commandes Unix ou les scripts Shell toutes les N secondes

  3. 5 Exemples de commandes UNIX / Linux Traceroute

  4. 10 exemples de commandes Xargs sous Linux / UNIX

  5. UNIX / Linux :Exemples de commande bash history pour répéter les dernières commandes

Commande Grep sous Linux/UNIX

Commande ls sous Linux/UNIX

commande cp sous Linux/UNIX

Rechercher la commande sous Linux/UNIX

Utilisation de la commande Telnet sous Linux/Unix

Commande Unix LS :15 exemples pratiques