Ao criar scripts, geralmente escrevo meus ifs com a seguinte sintaxe, pois é mais fácil para mim entender que o que vem a seguir não é verdadeiro.
if [ ! "$1" = "$2" ]; then
Outros dizem que o caminho abaixo é melhor
if [ "$1" != "$2" ]; then
O problema é que, quando pergunto por que e se existem diferenças, ninguém parece ter uma resposta.
Então, há alguma diferença entre as duas sintaxes? Um deles é mais seguro que o outro? Ou é apenas uma questão de preferência/hábito?