Je regardais coreutils et trouvé ce que l' un des fichiers inclus dans le cadre de coreutils: /usr/bin/[
. Qu'est- [
ce que c'est et que fait-il?
C'est un exécutable. Je ne sais tout simplement pas ce qu'il fait ni comment l'utiliser.
$ file / usr / bin / [
/ usr / bin / [: exécutable ELF 32 bits LSB, Intel 80386, version 1 (SYSV), lié dynamiquement (utilise des bibliothèques partagées), pour GNU / Linux 2.6.15, supprimé
Quand j'essaye de l'exécuter, je pense qu'il utilise par défaut l'expansion de ligne intégrée bash. Au lieu d'exécuter réellement le fichier.
$ "/ usr / bin / ["
/ usr / bin / [: manquant ] ']' $ /usr/bin/\[
/usr/bin/[: missing
man [
fonctionne sur OS X.Réponses:
C'est un équivalent de la commande
test
. (Voirinfo test
.) Généralement, vous l'utilisez dans des scripts dans des expressions conditionnelles comme:Le crochet de fermeture est nécessaire pour enfermer le conditionnel. (Eh bien, il semble que ce soit juste pour être plus joli dans le code. Quelqu'un connaît-il une autre raison pratique?)
la source
[
s'agit à la fois d' un shell intégré et d'un programme externe avec la même utilisation (ou similaire). En bash, lorsque vous exécutez[
ou quetest
vous invoquez le intégré.C'est équivalent à la
test
commande.Au lieu de
Vous pouvez utiliser:
Il peut également être utilisé en boucles:
Vous pouvez également les utiliser dans des monolignes comme ceci:
la source