Quelle est la différence entre les opérateurs bash [[vs [vs (vs ((((

Quelle est la différence entre les opérateurs bash [[vs [vs (vs ((((
Bash fournit plusieurs opérateurs pour comparer les valeurs, tester les conditions et effectuer des opérations mathématiques. Ces opérateurs incluent [[, [,, (et ((et peuvent souvent être déroutants pour les nouveaux utilisateurs. Voici un aperçu des différents opérateurs et de leurs fonctions.

Bracets à double carrée [[]]

Les [[et]] sont utilisés pour les expressions conditionnelles en bash. Le [[est une version avancée des supports carrés uniques [] et est utilisé pour la correspondance de motifs, les expressions régulières et les expressions conditionnelles avancées. L'opérateur est plus puissant que [et est préféré pour de nombreux cas.

#!bac / bash
String = Linux
si [[$ string == "Linux"]]; alors
Echo "La chaîne est Linux"
Fi

Dans le code suivant, l'opérateur de double support carré est utilisé pour vérifier si la valeur de la variable $ chaîne est égale à la chaîne «Linux»:

Crochets simples []

Les [et] sont utilisés pour les expressions conditionnelles en bash. Il est également appelé la commande «test». L'opérateur de crochets à carton unique [est également utilisé pour les expressions conditionnelles mais a plus de limitations que [[[. Il est utile pour les comparaisons et les tests de base, tels que la vérification si un fichier existe ou si une chaîne est vide.

#!bac / bash
# Définissez le nom du fichier à vérifier
file = "/ home / aaliyan / documents / bashFile2.sh "
# Vérifiez si le fichier existe
si [-f $ file]; alors
écho "le fichier existe"
autre
écho "le fichier n'existe pas"
Fi

Ce script vérifie si un fichier nommé «Bashfile2.sh ”existe dans le répertoire respectif et si le fichier existe, il imprime le message« le fichier existe »à la console sinon il imprimera« Le fichier n'existe pas »:

Parenthèses ()

L'opérateur parental (est utilisé pour exécuter des commandes dans un environnement de sous-coquille. Cela signifie que toutes les modifications apportées à l'environnement entre les parenthèses n'affectent pas l'environnement de la coquille parent.

#!bac / bash
# Changer le répertoire en / home / utilisateur / répertoire et répertorier son contenu
(CD / Home / Aaliyan / Documents && ls)

Dans le code suivant, l'opérateur parental est utilisé pour modifier le répertoire en / home / aaliyan / documents et exécuter la commande LS dans une sous-coque:

Double parenthèses (())

Les ((et)) sont utilisés pour l'évaluation arithmétique et il prend en charge des fonctionnalités plus avancées que l'opérateur de parenthèses monophone (, tels que les opérations bitwise, ci-dessous est un exemple de script bash qui démontre l'utilisation de doubles parenthèses:

#!bac / bash
# Définir les valeurs de A, B et C
a = 7
b = 9
c = 2
# Vérifiez si la somme de A et B est supérieure à C
if (($ a + $ b> $ c)); alors
écho "la somme de a et b est supérieure à C"
Fi

Dans le code suivant, l'opérateur à double parenthèses est utilisé pour vérifier si la somme des variables $ A et $ B est supérieure à la valeur de la variable $ C:

Pour mieux comprendre les différences entre ces opérateurs, j'ai donné un tableau qui peut vous aider à écrire plus efficacement de code de bash et à utiliser ces opérateurs de bash:

Opérateur But Exemple
[[ expression ]] Expressions conditionnelles si [[$ string == «linux»]]; puis écho "La chaîne est Linux"
[ expression ] Expressions conditionnelles de base si [-f $ file]; puis écho "le fichier existe"
( commande ) Exécuter les commandes dans un environnement de sous-coquille (CD / Home / User / Directory && ls)
(( expression )) Opérations arithmétiques if (($ a + $ b> $ c)); Puis écho «La somme de A et B est supérieure à C»

Conclusion

Les opérateurs bash [[]], [], () et (()) ont des utilisations et une syntaxe différentes. L'opérateur à double carré [[]] est utilisé pour la correspondance des modèles et la comparaison des chaînes, tandis que l'opérateur de crochets unique [] est utilisé pour les instructions conditionnelles et les tests de fichiers. L'opérateur parenthèses () est utilisé pour regrouper les commandes, et l'opérateur à double parenthèses (()) est utilisé pour l'évaluation arithmétique. Il est important d'utiliser l'opérateur approprié pour la tâche à accomplir pour s'assurer que vos scripts bash sont précis et efficaces.