Além de outras respostas, que lhe ensinaram como fazer o que você queria, tento explicar o que estava errado (o que você queria.
No Bash, ifdeve ser seguido com um comando. Se o código de saída deste comando for igual a 0, a thenparte será executada; caso contrário, a elseparte, se houver, será executada.
Você pode fazer isso com qualquer comando, conforme explicado em outras respostas: if /bin/true; then ...; fi
[[é um comando bash interno dedicado a alguns testes, como existência de arquivo, comparações de variáveis. Da mesma forma, [é um comando externo (normalmente localizado em /usr/bin/[) que executa aproximadamente os mesmos testes, mas precisa ]como argumento final, e é por isso que ]deve ser preenchido com um espaço à esquerda, o que não é o caso ]].
Aqui você não precisa [[nem [.
Outra coisa é a maneira como você cita as coisas. No bash, há apenas um caso em que pares de aspas se aninham, é isso "$(command "argument")". Mas 'grep 'SomeString' $File'você tem apenas uma palavra, porque 'grep 'é uma unidade citada, que é concatenada com SomeStringe depois concatenada com ' $File'. A variável $Filenem é substituída por seu valor por causa do uso de aspas simples. A maneira correta de fazer isso é grep 'SomeString' "$File".