シェルスクリプトの [ -a (AND) と -o (OR) ] は非推奨だかんね
https://qiita.com/ko1nksm/items/6201b2ce47f4d6126521
には -a や -o ではなく && と || を使うように書かれています。
否定の場合、 [ $a != $b ] と [ ! $a = $b ] はどちらを使ってもいいのでしょうか?