web-dev-qa-db-fra.com

Qu'est-ce que / bin / true

Sur un système Linux, ce qui est /bin/true?

66
Hulk

/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).

69
camh

Depuis la page de manuel:

true - do nothing, successfully

true returns a status 0.
26
user231967

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";
}
8
user3072567

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.

1
Sunshine

Dire simplement que c'est un programme renvoyant 0. Parfois, nous devons obtenir cette valeur pour permettre au script d'être plus lisible.

0
Marcus Thornton