Qu'est-ce que /bin/true
5 réponses
/bin/true
est une commande qui renvoie 0 (une valeur de vérité dans la coque).
Son but est d'utiliser dans des endroits dans un script shell où vous utiliseriez normalement un littéral tel que "true" dans un langage de programmation, mais où le shell ne prendra qu'une commande à exécuter.
/bin/false
est le contraire qui renvoie non-zéro (une valeur fausse dans le shell).
De la page de manuel:
true - do nothing, successfully
true returns a status 0.
Notez que ce n'est pas seulement stupide ou visuellement agréable. Il aide par exemple à quitter un programme sans activer les gestionnaires de fin qui pourraient gâcher lors de l'exécution de programmes multi-threads ou fourchus. Comme dans perl:
#!/usr/bin/env perl
exec "/bin/true";
END {
print "This wont get printed .. would have if I just 'exit' or 'die'\n";
}
Je l'ai vu utilisé pour tromper une opération système en pensant qu'une commande a été exécutée alors qu'elle ne l'a pas été. si une commande est défectueuse, par exemple en boucle, vous pouvez la remplacer par un lien symbolique vers 'true' pour que le travail principal s'exécute. Seulement une bonne idée si le travail remplacé n'est pas essentiel.
En disant simplement que c'est un programme renvoyant 0. Parfois, nous devons obtenir cette valeur pour rendre le script plus lisible.