Vérifier si une commande a réussi à Bash en utilisant le '$?'Variable spéciale

Vérifier si une commande a réussi à Bash en utilisant le '$?'Variable spéciale

Dans Bash, il est souvent nécessaire de vérifier si une commande a réussi ou a échoué. Par exemple, vous souhaiterez peut-être exécuter différentes commandes en fonction du succès ou de l'échec d'une commande, ou vous voudrez peut-être effectuer une gestion des erreurs dans un script. Pour vérifier si une commande a réussi ou a échoué à Bash, vous pouvez examiner l'état de sortie de la commande. L'état de sortie d'une commande est une valeur numérique qui indique le succès ou l'échec de la commande. Une commande avec un état de sortie de 0 indique le succès, et une commande avec un statut de sortie non nulle indique une défaillance.

Dans cet article, nous explorerons différentes façons de vérifier l'état de sortie d'une commande dans Bash, y compris l'utilisation du '$?' variable spéciale, en utilisant le '&&' et '||' Opérateurs, et utilisant des scripts et des fonctions. Comprendre comment vérifier l'état de sortie d'une commande dans Bash peut être utile dans divers scénarios lorsque vous travaillez avec Bash.

Vérifier si une commande a réussi à bash

Dans Bash, vous pouvez vérifier si une commande a réussi ou échoué en examinant l'état de sortie de la commande. L'état de sortie d'une commande est une valeur numérique qui indique le succès ou l'échec de la commande. Une commande avec un état de sortie de 0 indique le succès, et une commande avec un statut de sortie non nulle indique une défaillance.

Pour vérifier l'état de sortie d'une commande en bash, vous pouvez utiliser le $? variable spéciale, qui stocke le statut de sortie de la commande la plus récemment exécutée.

Par exemple, considérez la commande suivante:

ls -l / etc /  

Cette commande répertorie le contenu du '/etc' Répertoire en long format. Pour vérifier si cette commande a réussi, vous pouvez utiliser le code suivant:

ls -l / etc / si [$? -Eq 0]; Puis l'écho "Commande a succédé" else echo "Commande a échoué" fi
123456ls -l / etc / si [$? -Eq 0]; Puis l'écho "Commande a succédé" else echo "Commande a échoué" fi

Ce code vérifie l'état de sortie de la commande LS en examinant la valeur du $? variable spéciale. Si la valeur de '$?' est '0', La commande a réussi et le code imprime "La commande a réussi". Si la valeur de '$?' est non nul, la commande a échoué et le code imprime "La commande a échoué".

Vérifiez l'état de sortie d'une fonction

Vous pouvez également utiliser le '$?' variable spéciale pour vérifier l'état de sortie d'une commande dans un script ou une fonction. Par exemple, considérez le script suivant:

# / usr / bin / env bash check_command () commande si [$? -Eq 0]; puis retournez 0 else return 1 fi check_command ls -l / etc / if [$? -Eq 0]; Puis l'écho "Commande a succédé" else echo "Commande a échoué" fi
1234567891011121314151617# / usr / bin / env bash check_command () commande si [$? -Eq 0]; puis retournez 0 else return 1 fi check_command ls -l / etc / if [$? -Eq 0]; Puis l'écho "Commande a succédé" else echo "Commande a échoué" fi

Ce script définit une fonction Check_Command qui prend une commande comme argument et vérifie l'état de sortie de la commande. La fonction renvoie '0' Si la commande a réussi et '1' Si la commande a échoué. Le script appelle ensuite la fonction Check_Command avec la commande LS et vérifie l'état de sortie de la fonction en examinant la valeur du '$?' variable spéciale. Si la valeur de '$?' est '0', La commande a réussi, et le script imprime "La commande a réussi". Si la valeur de '$?' est '1', La commande a échoué et le script imprime "La commande a échoué".

Vérifiez l'état de sortie en utilisant '&&' Et '||' bas

En plus d'utiliser le '$?' variable spéciale, vous pouvez également utiliser le '&&' et '||' Opérateurs pour vérifier l'état de sortie d'une commande et exécuter différentes commandes en fonction du résultat. Par exemple, considérez le code suivant:

ls -l / etc / && echo "Commande a réussi" || Echo "Commande a échoué"
1ls -l / etc / && echo "Commande a réussi" || Echo "Commande a échoué"

Ce code vérifie l'état de sortie du 'LS''Commande et exécute différentes commandes en fonction du résultat. Si la commande LS a réussi, le code imprime "La commande a réussi". Si la commande LS a échoué, le code imprime "La commande a échoué".

Conclusion

En conclusion, vérifier si une commande a réussi ou a échoué à Bash est une tâche utile qui peut être accomplie en examinant le statut de sortie de la commande. L'état de sortie d'une commande est une valeur numérique qui indique le succès ou l'échec de la commande. Une commande avec un statut de sortie de '0' indique le succès et une commande avec un statut de sortie non nulle indique l'échec. Pour vérifier l'état de sortie d'une commande en bash, vous pouvez utiliser le $? variable spéciale, qui stocke le statut de sortie de la commande la plus récemment exécutée.

Vous pouvez également utiliser le $? variable spéciale pour vérifier l'état de sortie d'une commande dans un script ou une fonction ou utiliser le '&&' et '||' Opérateurs pour vérifier l'état de sortie et exécuter différentes commandes en fonction du résultat. Comprendre comment vérifier l'état de sortie d'une commande dans Bash peut être utile dans divers scénarios, comme lorsque vous souhaitez exécuter différentes commandes en fonction du succès ou de l'échec d'une commande ou lorsque vous souhaitez effectuer une gestion des erreurs dans un script.