Sur un système Linux, ce qui est /bin/true
?
/bin/true
est une commande qui renvoie 0 (une valeur de vérité dans le shell).
Son but est d'utiliser dans des endroits d'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 l'opposé qui retourne non nul (une fausse valeur dans le Shell).
Depuis la page de manuel:
true - do nothing, successfully
true returns a status 0.
Remarque, ce n'est pas seulement idiot ou visuellement agréable. Cela aide par exemple à quitter un programme sans activer les gestionnaires d'extrémité qui pourraient gâcher lors de l'exécution de programmes multithread ou fourchus. Comme en 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 s'est exécutée alors qu'elle ne l'a pas fait. Si une commande est défectueuse, par exemple en boucle, vous pouvez la remplacer par un lien symbolique vers "true" pour exécuter le travail maître. Seulement une bonne idée si le travail remplacé n'est pas essentiel.
Dire simplement que c'est un programme renvoyant 0. Parfois, nous devons obtenir cette valeur pour permettre au script d'être plus lisible.