Je regardais Coreutils et j'ai trouvé cela comme l'un des fichiers inclus dans le cadre de Coreutils: /usr/bin/[
. Quel est [
Et qu'est-ce que ça fait?
C'est un exécutable. Je ne sais tout simplement pas ce que ça fait ou comment l'utiliser.
$ Fichier/usr/bin/[
[.____]/usr/bin/[: ELF Exécutable LSB 32 bits, Intel 80386, version 1 (SYSV), liée dynamique (utilise des libs partagés), pour GNU/Linux 2.6.15, dépouillé
Lorsque j'essaie de l'exécuter, je pense qu'il est en défaut de l'expansion de la ligne bash intégrée. Au lieu d'exécuter réellement le fichier.
$ "/ usr/bin/["
[.____]/usr/bin/[: manquant]' $ /usr/bin/\[
] '
/usr/bin/[: missing
C'est un équivalent de la commande test
. (Voir info test
.) Généralement, vous l'utilisez dans des scripts dans des expressions conditionnelles telles que:
if [ -n "$1" ]; then
echo $1
fi
Le support de fermeture est tenu de renfermer le conditionnel. (Eh bien, il semble que c'est requis juste pour avoir l'air plus agréable dans le code. Quelqu'un peut-il connaître une autre raison pratique?)
Cela équivaut à la commande test
.
À la place de
if /usr/bin/test -z "$VAR"
then
echo VAR not set
fi
Vous pouvez utiliser:
if /usr/bin/[ -z "$VAR" ]
then
echo VAR not set
fi
Il peut aussi être utilisé dans des boucles:
i=0
while [ $i -lt 10 ]
do
echo $i
((i++))
done
Vous pouvez également les utiliser dans des doublures comme ceci:
[ -z "$VAR" ] && echo VAR not set && exit
[ -f foo.txt ] && cat foo.txt