do you use file extensions for your scripts?

https://programming.dev/post/492206

do you use file extensions for your scripts? - programming.dev

i’m pretty new to the shell scripting world and not sure, if i should give my scripts a .sh or .bash extension. not sure what the pros and cons are.

If we’re talking specifically about executable scripts, here is the link from #bash’s (libera.chat) factoid on the matter:

Don’t use extensions for your scripts. Scripts define new commands that you can run, and commands are generally not given extensions. Do you run ls.elf? Also: bash scripts are not sh scripts (so don’t use .sh) and the extension will only cause dependencies headaches if the script gets rewritten in another language. See talisman.org/…/commandname-extensions-considered-…

It’s for these reasons that I keep my executable scripts named without extensions (e.g. install).

I sometimes have non-executable scripts: they’re chmod -x, they don’t have a shebang, and they’re explicitly made for source-ing (e.g. library functions). For these, I give them an extension depending on what shell I wrote them for (and thus, what shell you need to use to source them), e.g. library.bash or library.zsh.

I do the same, but I include shebangs anyway out of habit.