if [ -s /tmp/hoge.txt ]; then # 1バイトでも中身があれば何もしない else # 0バイトだったら消す rm /tmp/hoge.txt fi Bourneシェルやzshを使っている場合はこれで大丈夫。ところが Bashで動かそうとするとエラー になってしまう。 Bashでは、thenやelif、else節の後に有効なコードを置かずに済ませることは許されないらしい。上記の例のようにコメントを置いてもダメだ。 じゃあどうする? 有効なコードがありさえすればいいので、無害なコードを置けばいい。無害かつ一番軽いコードといったらnullコマンド:ではないかと思う。したがって、こう書けばよい。