“Commande introuvable” lorsque vous tentez entier de l'égalité dans bash

Ok, c'est probablement va être ultra évident pour quelqu'un qui a passé plus de temps avec bash que j'ai.

Je suis en train d'exécuter ce code:

#!/bin/bash

if ["1" -eq "2"] 
then
    echo "True"
else
    echo "False"
fi

mais quand j'exécute le fichier, il envoie de retour

./test.sh: line 3: 1: command not found
False

Il doit y avoir quelque chose de plus important, je suis absent. J'ai vu des gens utiliser un point-virgule après les crochets, cela ne semble pas faire de différence... :S

[ est-ce un programme, essayez which [ et vous verrez. Et vous ne pouvez pas exécuter un programme avec des arguments écrits sans espace... (Et comme d'autres ont répondu, -eq est pour les nombres entiers. Qui il vous dira lors de l'utilisation de [ correct)
Tout le monde a déjà dit que vous avez besoin d'un espace après [. Le raison, c'est que [ est une commande -- c'est un alias pour test. Ces jours-ci c'est une commande interne du shell, mais vous pouvez trouver /bin/[ sur la plupart des systèmes.
Ceux entiers. Voir mon commentaire sur RageZ de réponse.
double possible de bash, command not found

OriginalL'auteur Margaret | 2010-12-17