echo $((`cat /tmp/hoge 2>/dev/null`+1)) > /tmp/hoge
ファイルが無いときは1を書く
6/10追記
/tmp/hogeを先に書き込みでオープンしちゃわないかこれと思ったが、bashのコマンドライン展開機能の方が先に動作しているので問題なかった。
$ strace echo $((`cat /tmp/hoge 2>/dev/null`+1)) > /tmp/hoge execve("/bin/echo", ["echo", "3"], [/* 20 vars */]) = 0 brk(0) = 0x804f000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)