シェルスクリプトに拡張子は必要かについて、不要とする理由は、実行権限をつける以上コマンドとしてみなすためである。 これに習ったときに不都合はほとんどない。それがテキスト形式なのか、バイナリ形式なの分りづらいかもしれないが、内容を確認するか、でなくてとも file コマンドが判別すれば良い。

これにもとづいてシェルスクリプトにアンダーバーを含めるかということになると、一般的にはつけないほうが多いと考えれるので、付けない。

ただし、標準的なコマンドと違って、普段の作業で作成するシェルスクリプトの場合、特定の処理を実姉することがおおいので、ファイル名が具体的な処理に紐付きやすくなり、複数の単語の組み合わせ、たとえば動詞と名詞を並べたもの(write memo など)になりがち。そのときはファイル名の形式として、キャメルケース(camelCase)か、スネークケース(snake_case)か、ケバブケース(cavab-case)にするか迷う。

大文字小文字を区別しないOSがあることに鑑みて、キャメルケースは避け、スネークケースは変数名で利用することがおおいので、最後にのこった、バブ形式が良いのではと思う。