64 votes

utiliser watch pour exécuter 2 commandes

Je dois effectuer deux commandes de surveillance dans le même terminal Windows. Je veux dire quelque chose comme

watch du -h filename.txt && df -h

Mais il ne montre qu'une seule sortie.

Je pense donc qu'il n'est peut-être pas possible d'utiliser watch pour exécuter plusieurs commandes dans la même fenêtre.

S'il y a un moyen, faites-le moi savoir.

Merci.

104voto

Mufaka Points 54

Vous pouvez citer les commandes :

watch "du -h filename.txt && df -h"

Et ils seront exécutés ensemble.

24voto

pranavcode Points 341

Si vous voulez être sûr que les deux commandes s'exécutent, l'un des moyens est de les séparer avec ; au lieu de && .

watch 'du -h filename.txt; df -h'

&& permet l'exécution de la deuxième commande (deuxième opérande, à droite de && ) que si la première commande s'est exécutée avec succès (état de sortie 0 ). Si c'est le comportement souhaité, optez pour && .

5voto

Geofferey Points 151

Pour être complet...

 watch 'du -h filename.txt || true && df -h'

La partie '|| true' fait en sorte que la première commande soit évaluée comme vraie même si elle échoue pour une raison quelconque. Cela permettra à la prochaine commande après le && de s'exécuter, quel que soit le résultat de la première. Ce n'est probablement pas nécessaire pour le scénario, mais cela montre simplement que c'est possible.

-1voto

Ilya Cherevkov Points 632

Pour que plusieurs commandes s'exécutent simultanément, utilisez une seule & opérateur entre les commandes. Comme :

dothis & dothat

Pour dissiper toute confusion, voici comment fonctionnent les différents opérateurs :

c1 & c2  # Run both commands parallelly
c1 ; c2  # Run both commands one by one
c1 && c2 # Run c2 only if c1 exits successfully
c1 || c2 # Run c2 only if c1 fails

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X