I’m a Unix citizen. I work with the modern web, but have a soft spot for the old Internet.

Check out my site.

  • 0 Posts
  • 4 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle

  • If we’re talking specifically about executable scripts, here is #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 http://www.talisman.org/~erlkonig/documents/commandname-extensions-considered-harmful

    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.


  • Yeah, I use weechat.

    But in the interest of sharing something new: I do also like ii, which is a minimal filesystem-based IRC client. To tail a channel’s messages, for example, you could do

    tail -f #vim/out
    

    Then to send a message,

    echo 'Hello, world!' > #vim/in
    

    Fun for the first five minutes just pulling together a makeshift IRC client with tmux panes and the above, but then you realize the depth of the iceberg with its scriptability with standard Unix pipelines. Tail out into a perl script that pipes back into in for example and you have a bot.