>>43
老婆心ながら口出しすると

[←これコマンドだよ。ifの後にはどういう場合でもコマンドが要る。
ただし例えばあなたが初めにやっていた数値比較などよく使うコマンドは
test <数値> -eq <数値>
という形式だと読みにくいので
[ <数値> -eq <数値> ]
↑こういう書き方ができるように「[」というファイル名の普通のコマンドが用意されている。
だからCみたいに条件文の括弧だと思って
[$num -eq 0]
みたく前後に空白を空けずに書くと当然エラーになる。なぜなら「[」はコマンドなので前後に環境変数$IFSで定められた文字が必要。