une seule ligne d'instruction si dans un script shell ne fonctionne pas

C'est mon code:

#!/bin/bash
cat input$1 | ./prog$1 > output$1 && if[ "$2" != "" ]; diff output$1 expected$1;

Ce qui arrive alors:

$ ./run.sh
./run.sh: line 2: if[ no !=  ]: command not found
$

J'ai pensé que je pouvais courir si des instructions sur une seule ligne? c'est que quel est le problème?

OriginalL'auteur Alexander Bird | 2012-02-24