Commande true de Linux
Qu'est-ce que la commande true
trueC'est l'une des commandes les plus simples des systèmes Linux/Unix, et elle n'a qu'une seule fonction :Toujours renvoyer un succès (code de statut de sortie 0)。
Cette commande semble simple, mais elle a des utilisations importantes dans la programmation de scripts shell. Elle équivaut à une opération "ne rien faire mais toujours réussir".
Syntaxe de base
Exemples
Options
| Option | Description |
|---|---|
| --help | Afficher les informations d'aide et quitter |
| --version | Afficher les informations de version et quitter |
Comment ça marche
trueLe processus d'exécution de la commande est très simple :
- Lorsque vous saisissez
trueet appuyez sur Entrée - Le système exécute cette commande
- La commande se termine immédiatement sans rien faire
- Renvoie le code d'état de sortie 0 (indiquant le succès)
Cas d'utilisation pratiques
1. En tant que condition d'une boucle infinie
Exemples
echo "Ceci est une boucle infinie"
sleep 1
done
Dans cet exemple,while truecrée une boucle infinie parce quetruerenvoie toujours un succès (0), donc la condition de boucle est toujours vraie.
2. Comme opération réussie par défaut
Exemples
Cette syntaxe signifie : sicommandéchoue à s'exécuter, alors exécuteztrue(réussit toujours), cela garantit que l'expression entière renvoie toujours un statut de réussite.
3. Comme espace réservé dans les scripts
Exemples
: # Ne rien faire
else
true # Cela peut aussi s'écrire pour ne rien faire
fi
Icitruesert de substitut à un no-op, ce qui rend la structure du code plus claire.
Comparaison avec la commande false
Linux dispose également d'unefalsecommande correspondante, qui renvoie toujours un échec (code de statut de sortie 1). Le tableau ci-dessous montre les différences entre elles :
| Commande | Fonction | Code de statut de sortie | Utilisation typique |
|---|---|---|---|
| vrai | Ne fait rien, renvoie un succès | 0 | Boucles infinies, en ignorant les erreurs |
| false | Ne fait rien, renvoie un échec | 1 | Test de la gestion des erreurs, vérifications conditionnelles |
Détails d'implémentation
Sur la plupart des systèmes Linux,trueest une commande intégrée (commande interne du shell), mais il existe généralement aussi une version binaire autonome :
Exemples
true est une commande interne du shell
true est /usr/bin/true
true est /bin/true
Son implémentation est extrêmement simple et peut être représentée en C comme suit :
Exemples
return 0;
}
Exercices pratiques
Essayez de l'exécuter directement dans le terminaltrue, puis vérifiez le code de statut de sortie :
Exemples
echo $? # Cela affichera 0
Créez un script de boucle infinie qui affiche l'heure actuelle toutes les 5 secondes :
Exemples
while true; do
date
sleep 5
done
Testtruele comportement dans les instructions conditionnelles :
Exemples
echo "Ceci s'exécutera toujours"
fi
FAQ
Q : La commande true ne fait-elle vraiment rien ?R : Oui, elle n'effectue aucune opération réelle, elle renvoie simplement un statut de sortie réussi.
Q : Pourquoi avons-nous besoin d'une commande apparemment aussi inutile ?R : En programmation de scripts, nous avons parfois besoin d'un espace réservé ou d'une condition qui réussit toujours,trueet cette commande répond exactement à ce besoin.
Q : Quelle est la différence entre true et deux-points (:) ?R : Dans la plupart des shells,:est aussi une commande qui ne fait rien, et son comportement est identiquetrueà true. Cependant,:est un builtin pur du shell, tandis quetruepeut avoir une version binaire autonome.
Résumé
trueBien que la commande soit simple, elle est un outil pratique en programmation de scripts shell. Ses principales caractéristiques incluent :
- Renvoie toujours un succès (code de statut de sortie 0)
- N'effectue aucune opération réelle
- Souvent utilisé pour les boucles infinies, la gestion des erreurs et les espaces réservés dans le code
Référence des commandes Linux