Différence de bash entre l'attente et le sommeil

Différence de bash entre l'attente et le sommeil
Bash est une puissante langue de script de coquille utilisée dans les systèmes d'exploitation basés sur UNIX. Les deux des commandes les plus utilisées de Bash sont attendez et dormir Et les deux commandes sont utilisées pour suspendre l'exécution d'un script bash, mais ils fonctionnent différemment.

Cet article explorera les différences entre attendez et dormir Commandes en bash et fournissent des exemples pour chaque commande.

Commandement du sommeil

Le dormir La commande est utilisée pour suspendre l'exécution d'un script pour un nombre spécifié de secondes et est souvent utilisée pour introduire les retards entre les commandes ou pour suspendre un script avant de continuer l'exécution, ci-dessous est la syntaxe pour le dormir commande:

dormir

En cas de seconde, le nombre de secondes pour suspendre le script, pour plus d'illustration, j'ai donné un exemple de code bash qui ne fait que faire une pause l'exécution du code pendant 5 secondes, voici un exemple:

#!/ bac / bash
Echo "Démarrage d'un processus de longue date."
# Pause pendant 5 secondes
sommeil 5
Echo "Continuer avec le script."

Le code imprime un message pour indiquer que nous commençons un processus de longue date, puis utilise la commande de sommeil pour suspendre le script pendant 5 secondes avant de continuer avec la commande suivante et une fois dormir Le temps est supérieur au script continuera son exécution:

Commande d'attente

Le attendez La commande est utilisée pour suspendre l'exécution d'un script jusqu'à ce que tous les processus enfants aient terminé. Il est souvent utilisé en conjonction avec l'Operator, qui permet à un script d'exécuter plusieurs commandes simultanément, ci-dessous est la syntaxe pour le attendez commande

attendez

Pour plus d'illustration, j'ai donné un exemple de code bash qui attend juste d'exécuter tous les processus exécutés en arrière-plan à l'aide de la commande d'attente et une fois tous les processus terminés, il imprime un message de tâche terminé:

#!/ bac / bash
# Définir une fonction qui effectue une tâche qui prend du temps
function time_consuming_task
Echo "Tâche de temps de départ 1 $"
sommeil 2 $
ECHO "Tâche à temps terminée 1 $"

# Démarrez plusieurs tâches chronophages en arrière-plan
Time_consuming_task "Tâche 1" 5 &
Time_consuming_task "Tâche 2" 3 &
Time_consuming_task "Tâche 3" 7 &
# Attendez que toutes les tâches d'arrière-plan se terminent
attendez
# Imprimez un message indiquant que toutes les tâches ont terminé
Echo "Tous les tâches qui prennent du temps ont été effectuées."

Ici, nous avons défini une fonction appelée Time_consuming_task qui simule une tâche longue en utilisant le dormir commande de suspendre l'exécution du script pendant une durée spécifiée. Nous commençons ensuite plusieurs instances de cette fonction en arrière-plan en utilisant le & symbole.

Après avoir commencé les tâches d'arrière-plan, nous utilisons le attendez commande pour suspendre l'exécution du script jusqu'à ce que toutes les tâches d'arrière-plan soient terminées. Enfin, nous imprimons un message indiquant que toutes les tâches qui prennent du temps ont été effectuées:

C'est comment le attendez La commande peut être utilisée pour contrôler l'exécution des tâches d'arrière-plan en bash. En utilisant la commande d'attente, nous pouvons nous assurer que notre script attend que toutes les tâches d'arrière-plan se terminent avant de continuer avec la commande suivante. Cela peut être particulièrement utile lorsque nous devons effectuer plusieurs tâches longues en parallèle et que nous devons attendre que toutes les tâches se terminent avant de passer à l'étape suivante

Différence entre l'attente et le sommeil

La principale différence entre attendez et dormir est-ce attendez est utilisé pour suspendre un script jusqu'à ce que tous les processus d'enfants se terminent, tandis que dormir est utilisé pour suspendre un script pour un nombre spécifié de secondes. Le attendez est généralement utilisé conjointement avec l'opérateur pour permettre à un script d'exécuter plusieurs commandes simultanément, tandis que dormir est utilisé pour introduire des retards entre les commandes ou pour suspendre un script avant de continuer l'exécution.

Conclusion

Le attendez et dormir sont deux commandes couramment utilisées dans Bash qui sont utilisées pour suspendre l'exécution d'un script. Le attendez est utilisé pour suspendre un script jusqu'à ce que tous les processus d'enfants se terminent, tandis que dormir est utilisé pour suspendre un script pour un nombre spécifié de secondes. En comprenant les différences entre ces commandes, vous pouvez les utiliser efficacement dans vos scripts bash pour améliorer l'efficacité et automatiser les tâches.